溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Windows定時刪除某天前文件的批處理腳本

發(fā)布時間:2020-07-21 23:54:34 來源:網(wǎng)絡(luò) 閱讀:52095 作者:日暮西山 欄目:系統(tǒng)運(yùn)維

Windows定時刪除某天前文件的批處理腳本
備注:
1.如XP下因?yàn)闆]有forfiles.exe,拷貝windows2003下的forfiles.exe文件到XP的system32目錄即可使用forfiles命令。?

2.該文檔適用于windows客戶端操作系統(tǒng)xp win7/8/10,windows服務(wù)器端操作系統(tǒng) server 2003/2008/2012/2016。
3.如有錯漏,煩勞指出,謝謝!


Windows定時刪除某天前文件的批處理腳本

forfiles.exe及幫助

描述:

? ? 選擇一個文件(或一組文件)并在那個文件上執(zhí)行一個命令。這有助于批處理作業(yè)。

語法:

forfiles /p <目標(biāo)目錄名> /d <天數(shù)> /c <執(zhí)行的命令>?


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

/p ?指定了要在哪個目錄里查找文件,默認(rèn)是當(dāng)前工作目錄。?

/d ?指定一個日期或天數(shù),用于比較文件的最后修改日期是否符合條件。?

/c ?對每個找到的文件執(zhí)行的命令。?


2.看看列出的三個參數(shù)都有什么用處:(詳細(xì)解析)

/p <Path> ? ? : 指定開始搜索文件的位置,如果不指定則默認(rèn)為當(dāng)前目錄。?

/m <SearchMask> : 文件查找所使用的通配符如代碼中的"*.log"則為所有日志文件,當(dāng)然也可以指定諸如"manmee_*.log"這樣以manmee開頭的所有日志文件。如果不指定此參數(shù)則默認(rèn)為"*.*"。?

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

當(dāng)然這里還可以指定具體時間,例如:"/d -08/18/2009"這樣所有早于2009年8月18日的文件。注意指定的時間必須是"MM/DD/YYYY"的格式。?

/c 對所有文件以此執(zhí)行指定的命令,命令體須在雙引號(")內(nèi),默認(rèn)是"cmd /c echo @file"。上文中用到的是"cmd /c del /f @path"刪除指定文件。(這里的@file 和 @path 為變量,下文中將進(jìn)行解釋。


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


例1.要把在C盤根目錄下最后修改日期大于或等于2007年7月1日的文件復(fù)制到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?刪除當(dāng)前目錄下28天以前的擴(kuò)展名為bkf文件(以當(dāng)前系統(tǒng)時間為基準(zhǔn)) ?

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"?


解釋一下相關(guān)參數(shù)及命令?

@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定時刪除某天前文件的批處理腳本

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI