ftp服務器用于保存?zhèn)浞菸募且膊恍枰刻斓臄祿剂糁谑呛鯙榱丝紤]節(jié)省硬盤空間,就必須刪除一些老文件,只要保存最近一周或者一個月的就可以了
windows自帶了一個批量刪除的程序,叫做forfiles,XP里貌似沒有,博文最下面附件可以下載
首先說一下我的應用吧,ftp服務器端每天備份數據文件后,只想保存最近兩周的文件
編寫一個bat文件,內容如下
寫道
@echo offrem write to logset filename=deletefile.logecho -------------------Delete Expired Log Files------------------------- >>%filename%echo Start >>%filename%echo (%date% %time%) >>%filename%echo Delete the expired log files in 目標目錄路徑1, Please wait... >>%filename%forfiles.exe /p "D:/Kugou" /m *.tar /d -14 /c "cmd /c del @path"echo End >>%filename%echo (%date% %time%) >>%filename% |
關鍵命令就這一條了:forfiles.exe /p "D:/Kugou" /m *.tar /d -14 /c "cmd /c del @path"
這條命令的意思就是,搜索D:/Kugou目錄下的任意后綴名為tar的文件,查看其日期屬性是否為14天之前的(-14表示之前,+14表示之后),然后執(zhí)行刪除命令
一開始一直在糾結這日期格式是怎么弄的,是不是forfiles是通過匹配文件名來刪除的,結果一直在改文件名的日期顯示格式,后來才發(fā)現(xiàn)偶智商如此低下,人家forfiles是windows自帶的,尼瑪明顯能夠智能的匹配文件日期屬性啊。
所以說,只要這個文件的日期屬性是14天之前的,就會被上述腳本刪除。
然后在添加任務計劃。。。
下面帖一下forfiles的參數用法
Forfiles
從文件夾或樹中選擇要進行批處理的文件。
語法
forfiles [/p Path ] [/m SearchMask ] [/s ] [/c Command ] [/d [{+ | - }] [{MM / DD / YYYY | DD }]]
參數
/p Path
指定Path ,表明要從哪里開始搜索。默認的文件夾是當前工作目錄,該目錄通過鍵入句號(.) 指定。
/m SearchMask
按照SearchMask 搜索文件。默認的SearchMask 是*.* 。
/s
指示forfiles 在子目錄中搜索。
/c Command
在每個文件上運行指定的Command 。帶有空格的命令字符串必須用引號括起來。默認的Command 是"cmd /c echo @file" 。
/d [{+ | - }] [{MM / DD / YYYY | DD }]
選擇日期大于或等于(+ )(或者小于或等于(- ))指定日期的文件,其中MM / DD / YYYY 是指定的日期,DD 是當前日期減去DD 天。如果未指定+ 或- ,則使用+ 。DD 的有效范圍是0 - 32768。
/?
在命令提示符下顯示幫助。
注釋
新聞熱點
疑難解答