應用FORFILES敕令來刪除SQLServer備份的批處置。本站提示廣大學習愛好者:(應用FORFILES敕令來刪除SQLServer備份的批處置)文章只能為提供參考,不一定能成為您想要的結果。以下是應用FORFILES敕令來刪除SQLServer備份的批處置正文
該FORFILES敕令將拔取文件的一個子集而且針對這個子集履行一個敕令。這個敕令須要上面的參數和接收上面的變量。
參數
參數名 描寫 /p 途徑 /m 檢索屏障 (默許情形下是 *.*) /s 假如包括這個參數,那末子目次將會被遞歸地檢索。 /c <command> 針對成果集中的每個文件履行敕令,敕令必需包括在雙引號中,默許情形是"cmd c/ echo @file" /d 針對文件選擇的日期規模,把最新的更改日期看成文件尺度。當/d參數是MM/DD/YYYY格局時,知足指定的+/-日期尺度的文件也包括在內。當文件格局是smallint (-32,768 - 32,768)文件+/-文件而且帶著一個更改日期+/-時,從以後日期到該日期的時光數量將會包括在這個文件成果集中。
變量
變量名 描寫 @FILE 文件名 @FNAME 無擴大的文件名 @EXT 文件擴大名 @PATH 文件相對路經 @RELPATH 文件的絕對途徑 @ISDIR 假如文件類型是一個目次,那末斷定能否是TRUE @FSIZE 文件年夜小(用字節權衡) @FDATE 文件上的最新更改日期郵戳 @FTIME 文件上的最新更改時光郵戳
應用這些參數可以結構上面的例子來處理你刪除備份劇本文件的困難。你可以基於更改時光/日期或許備份類型來創立劇本。你乃至可以結構可以或許同時參照兩種尺度的劇本。
我們將細心看看這些能夠的劇本。記住,你將從T-SQL代碼外部履行這個進程,所以你須要在一個xp_cmdshell拜訪中以EXEC xp_cmdshell 'FORFILES COMMAND'的格局總結這些語句。請留意,在一切的例子中我都邑應用/Q 和 /F標簽來作為刪除敕令。這意味著這個敕令將應用寧靜形式(/Q)乃至刪除只能讀的文件(/F)。
例子
當文件更改日期晚於10/18/2008時,刪除一切C:Backup目次和它子目次下的.sql文件。
EXEC xp_cmdshell 'FORFILES /p c:BACKUP /s /m *.sql /d 10/18/2008 /c "CMD /C del /Q /F @FILE"'
當文件更改日期多於30地利,刪除一切C:Backup目次和它的子目次下的.sql文件。
EXEC xp_cmdshell 'FORFILES /p c:BACKUP /s /m *.sql /d -30 /c "CMD /C del /Q /F @FILE"'
當文件更改日期多於30天且文件名以"F_"打頭時,刪除一切C:Backup目次和它的子目次下的.sql文件。
EXEC xp_cmdshell 'FORFILES /p c:BACKUP /s /m F_*.sql /d -30 /c "CMD /C del /Q /F @FILE"'