Windows定時刪除某天前檔案的批處理指令碼

來源:互聯網
上載者:User

標籤:批處理指令碼   自動刪除   forfiles   

備忘:
1.如XP下因為沒有forfiles.exe,拷貝windows2003下的forfiles.exe檔案到XP的system32目錄即可使用forfiles命令。 

2.該文檔適用於windows用戶端作業系統xp win7/8/10,windows伺服器端作業系統 server 2003/2008/2012/2016。
3.如有錯漏,煩勞指出,謝謝!


forfiles.exe及協助

描述:

    選擇一個檔案(或一組檔案)並在那個檔案上執行一個命令。這有助於批次工作。

文法:

forfiles /p <目標目錄名> /d <天數> /c <執行的命令> 


1.看看列出的三個參數都有什麼用處:(簡單解析)

/p  指定了要在哪個目錄裡尋找檔案,預設是當前工作目錄。 

/d  指定一個日期或天數,用於比較檔案的最後修改日期是否符合條件。 

/c  對每個找到的檔案執行的命令。 


2.看看列出的三個參數都有什麼用處:(詳細解析)

/p <Path>     : 指定開始搜尋檔案的位置,如果不指定則預設為目前的目錄。 

/m <SearchMask> : 檔案尋找所使用的萬用字元如代碼中的"*.log"則為所有記錄檔,當然也可以指定諸如"manmee_*.log"這樣以manmee開頭的所有記錄檔。如果不指定此參數則預設為"*.*"。 

/d [{+|-}][{<Date>|<Days>}] : 指定想選擇檔案的最後修改時間,上文中用了 "/d -7" 表示所有以當天為基礎,7天以前的檔案。

當然這裡還可以指定具體時間,例如:"/d -08/18/2009"這樣所有早於2009年8月18日的檔案。注意指定的時間必須是"MM/DD/YYYY"的格式。 

/c 對所有檔案以此執行指定的命令,命令體須在雙引號(")內,預設是"cmd /c echo @file"。上文中用到的是"cmd /c del /f @path"刪除指定檔案。(這裡的@file 和 @path 為變數,下文中將進行解釋。


====================例子說明==========================


例1.要把在C盤根目錄下最後修改日期大於或等於2007年7月1日的檔案複製到D盤根目錄下: 

forfiles /p "c:\" /d "2007-7-1" /c "cmd /c copy @path d:\" 


例2.1 刪除在C盤backup目錄下最後修改日期在10天前的檔案: 

forfiles /p "c:\backup" /d -10 /c "cmd /c echo deleting @file ... && del /f @path" 


例2.2 自動刪除D盤test目錄最後修改日期在7天前檔案

forfiles /p "d:\test" /s /m *.* /d -7 /c "cmd /c del @path" 


例2.3 刪除目前的目錄下28天以前的副檔名為bkf檔案(以當前系統時間為基準)  

forfiles /m *.bkf /d -28 /c "cmd /c del @file /f" 


刪除檔案的文法解析
forefiles /p /m -d /c

forfiles /p 包含要刪除檔案的完整路徑(如:F:\Logfiles) /m *.log -d -7 /c "cmd /c del /f @path" 


解釋一下相關參數及命令 

@PATH : 表示檔案的完整的路徑。 

@File : 表示檔案名稱。 


==========案例操作============


1.刪除所有的空目錄(以刪除d:\test目錄下為例) 

dir /ad/b/s d:\test\ |sort /r >d:\kill.txt 

For /f "tokens=*" %%i in (d:\kill.txt) DO rd "%%i" 

del d:\kill.txt 


2.自動刪除7天前檔案和目錄

{建一個bat檔案的捷徑在啟動,d:\test換成你要的目錄路徑。日期是指修改的日期。 }

原理:先刪到期檔案,再刪所有的空目錄,這才是一個完整的刪除過程 

@echo off 

forfiles /p "d:\test" /s /m *.* /d -7 /c "cmd /c del @path" 

dir /ad/b/s d:\test\ |sort /r >d:\kill.txt 

For /f "tokens=*" %%i in (d:\kill.txt) DO rd "%%i" 

del d:\kill.txt 


Windows定時刪除某天前檔案的批處理指令碼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.