zoukankan      html  css  js  c++  java
  • win bat日志清除脚本

    需求:

    删除15天前的日志文件夹或文件,文件夹以日期命名,如:20180101

    set log_dir="C:inetpublogsLogFiles"
    :: 保留日志天数
    set bak_dat=15
    :: 删除日志文件。解释:删除C:inetpublogsLogFiles目录下以.log结尾的15天前的文件
    forfiles /p %log_dir% /M "*.log" /D -%bak_dat% /C "cmd /c del @file"
    :: 删除日志文件夹。解释:删除C:inetpublogsLogFiles目录下以20开头的15天前的文件夹
    forfiles /p %log_dir% /d -%bak_dat% /m "20*" /c "cmd /c if @isdir==TRUE (rmdir /q /s @path)"

    :: 以上两条命令根据自己实际情况作出修改

    forfiles 参数

    /p:指定文件夹

    /d:指定时间,通过文件的上次修改日期选择文件,主要有以下两种写法:

      -Day,-YYYY-MM-DD

      -7表示,七天前的数据,

      +7表示,过去七天的数据,

      -2018-01-01,2018-01-01前的数据

      +2018-01-01,2018-01-01之后的数据

    /m:名称,支持通配符*

    /s:递归搜索

    /c    command       表示为每个匹配到的对象执行的命令。命令字符串应该用双引号括起来。默认命令是 "cmd /c echo @file"。下列变量可以用在命令字符串中:

                            @file    - 返回文件名(仅文件名)。
                            @fname   - 返回不带扩展名的文件名。
                            @ext     - 只返回文件的扩展名。
                            @path    - 返回文件的完整路径(包含文件名)。
                            @relpath - 返回文件的相对路径。
                            @isdir   - 如果文件类型是目录,返回 "TRUE";如果是文件,返回 "FALSE"。
                            @fsize   - 以字节为单位返回文件大小。
                            @fdate   - 返回文件上一次修改的日期。
                            @ftime   - 返回文件上一次修改的时间。
    特别说明:
                            要在命令行包括特殊字符,字符请以 0xHH形式使用十六进制代码(例如,0x09 为 tab)。
                            调用内部 CMD.exe 命令前面应以 "cmd /c" 开始

    rmdir参数

    /q:删除目录时不提示确认,直接删除

    /s:表示删除该目录下所有遍历的子目录和文件

  • 相关阅读:
    google 语音识别返回,
    如果到来,会是怎样情况,fuck,
    sql
    阅读《一》
    阅读,
    Codevs 1078 ==Poj 1258 Agri-Net
    洛谷 P3399 丝绸之路
    线段树-代码实现细节与技巧
    Codevs 1371 浴火银河跑运输
    POJ 3267 The Cow Lexicon
  • 原文地址:https://www.cnblogs.com/xue0123/p/10647774.html
Copyright © 2011-2022 走看看