BAT定期刪除N天前的文件


1.直接看腳本在win2008測試可用

::clean logs
@echo off
title clean up logs

::delete logs
FORFILES /P "D:\Logs" /S /M *.log* /D -7 /C "cmd /c echo deleting..@file.. &del @file"

pause

2.列出幾個參考吧,forfiles的版本不一致會導致很多不一樣的問題

forfiles:

/p 指定的路徑 
/s 包括子目錄 
/m 查找的文件名掩碼 
/d 指定日期,有絕對日期和相對日期, 此處-7指當前日期 的7天前   


/c 運行的命令行   表示為每個文件執行的命令。命令字符串應該
                        用雙引號括起來。

                        默認命令是 "cmd /c echo @file"。下列變量
                        可以用在命令字符串中:
                        @file    - 返回文件名。
                        @fname   - 返回不帶擴展名的文件名。
                        @ext     - 只返回文件的擴展。
                        @path    - 返回文件的完整路徑。
                        @relpath - 返回文件的相對路徑。
                        @isdir   - 如果文件類型是目錄,返回 "TRUE";
                                   如果是文件,返回 "FALSE"。
                        @fsize   - 以字節為單位返回文件大小。
                        @fdate   - 返回文件上一次修改的日期。
                        @ftime   - 返回文件上一次修改的時間。

示例
要列出驅動器 C: 上的所有批處理文件,請鍵入:

forfiles /p c:\ /s /m*.bat /c"cmd /c echo @file is a batch file"

要列出驅動器 C: 上的所有目錄,請鍵入:

forfiles /p c:\ /s /m*.* /c"cmd /c if @isdir==true echo @file is a directory"

要列出驅動器 C: 上存在時間多於 100 天的所有文件,請鍵入:

forfiles /p c:\ /s /m*.* /dt-100 /c"cmd /c echo @file :date >= 100 days"

要列出驅動器 C: 上 1993 年 1 月 1 日以前創建的所有文件,而且對於日期早於 1993 年 1 月 1 日的文件顯示“file is quite old!”,請鍵入:

forfiles /p c:\ /s /m*.* /dt-01011993 /c"cmd /c echo @file is quite old!"

要按列格式列出驅動器 C: 上所有文件的擴展名,請鍵入:

forfiles /p c:\ /s /m*.* /c "cmd /c echo extension of @file is 0x09@ext0x09" With:

要列出驅動器 C: 上的所有批處理文件,請鍵入:

forfiles /p c:\ /s /m *.bat /c "cmd /c echo @file is a batch file"

要列出驅動器 C: 上的所有目錄,請鍵入:

forfiles /p c:\ /s /m *.* /c "cmd /c if @isdir==true echo @file is a directory"

要列出驅動器 C: 上存在時間多於 100 天的所有文件,請鍵入:

forfiles /p c:\ /s /m *.* /d t-100 /c "cmd /c echo @file :date >= 100 days"

要列出驅動器 C: 上 1993 年 1 月 1 日以前創建的所有文件,而且對於日期早於 1993 年 1 月 1 日的文件顯示“file is quite old!”,請鍵入:

forfiles /p c:\ /s /m *.* /d t-01011993 /c "cmd /c echo @file is quite old!"

要按列格式列出驅動器 C: 上所有文件的擴展名,請鍵入:

forfiles /p c:\ /s /m*.* /c "cmd /c echo extension of @file is 0x09@ext0x09"


免責聲明!

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



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