win bat日志清除腳本


需求:

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

 

set log_dir="C:\inetpub\logs\LogFiles"
:: 保留日志天數
set bak_dat=15
:: 刪除日志文件。解釋:刪除C:\inetpub\logs\LogFiles目錄下以.log結尾的15天前的文件
forfiles /p %log_dir% /M "*.log" /D -%bak_dat% /C "cmd /c del @file"
:: 刪除日志文件夾。解釋:刪除C:\inetpub\logs\LogFiles目錄下以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:表示刪除該目錄下所有遍歷的子目錄和文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM