標籤:
利用任務計劃自動刪除指定日期的SQLServer備份檔案
命令
FORFILES [/P pathname] [/M searchmask] [/S]
[/C command] [/D [+ | -] {yyyy-MM-dd | dd}]
方法1:
描述:可以刪除7天以前的尾碼名為log的記錄檔。如今天是6.29,那麼會刪除6.22
號以前建立的檔案。不會刪除到資源回收筒。
指定路徑為要刪除的檔案夾路徑,該批處理可以放在任意檔案夾下。
forfiles /p D:\aizzw\LOG /m *.log -d -7 /c "cmd /c del /f @path"
參數解釋:
這裡的/p 指的是要刪除的備份檔案路徑
/m 指的是要匹配的字元,萬用字元為*號,尾碼名可以根據實際情況修改。
如zzw*.log;*.bak;*.txt
-d 指的是日期,“-d -7”指的是從但前日期當前日期往前減7天。
/c 指的是執行命令
@path 返迴文件完整路徑
方法2:
描述:可以刪除7天以前的尾碼名為log的記錄檔。
不需要指定路徑,必須放在要刪除日誌的檔案下。刪除當前檔案夾下的匹配檔案。
forfiles /m *.log -d -7 /c "cmd /c del /f @path"
以上批處理已經在windows 2003的虛擬機器上測試通過
下面是這個命令的用法。
forfiles /p <目標目錄名> /d <天數> /c <執行的命令>
看看列出的三個參數都有什麼用處:
/p 指定了要在哪個目錄裡尋找檔案,預設是當前工作目錄。
/d 指定一個日期或天數,用於比較檔案的最後修改日期是否符合條件。
/c 對每個找到的檔案執行的命令。
例1.要把在C盤根目錄下最後修改日期大於或等於2007年7月1日的檔案複製到D盤根目錄下:
forfiles /p "c:\" /d "2007-7-1" /c "cmd /c copy @path d:\"
例2.刪除在C盤backup目錄下最後修改日期在10天前的檔案:
forfiles /p "c:\backup" /d -10 /c "cmd /c echo deleting @file ... && del /f @path"
先看刪除檔案的代碼
forfiles /p 包含要刪除檔案的完整路徑(如:F:\Logfiles) /m *.log -d -7 /c "cmd /c del /f @path"
解釋一下相關參數及命令
/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 為變數,下文中將解釋。)
下面說一下上文中用到的參數:
@PATH : 表示檔案的完整的路徑。
http://blog.csdn.net/babauyang/article/details/25742797
利用任務計劃自動刪除指定日期的SQLServer備份檔案