如何使用FORFILES命令來刪除SQL Server備份作者: ddvip, 出處:IT專家網(wǎng)論壇, 責(zé)任編輯: 陳子琪,
2010-03-08 07:00
雖然有很多種方式可以解決這個問題,但是我們可以用T-SQL代碼來處理這個文件刪除過程。我用xp_cmdshell命令和FORFILES命令來處理類似于你所列出的過程。專家解答 雖然有很多種方式可以解決這個問題,但是我們可以用T-SQL代碼來處理這個文件刪除過程。我用xp_cmdshell命令和FORFILES命令來處理類似于你所列出的過程??梢詮腗icrosoft TechNet中獲得FORFILES的可靠信息,但是在這篇文章中,我將涉及FORFILES大量的結(jié)構(gòu)和使用方法來達(dá)到你的目的。 該FORFILES命令將選取文件的一個子集并且針對這個子集執(zhí)行一個命令。這個命令需要下面的參數(shù)和接受下面的變量。 參數(shù) 參數(shù)名描述 /p路徑 /m檢索屏蔽 (默認(rèn)情況下是 *.*) /s如果包含這個參數(shù),那么子目錄將會被遞歸地檢索。 /c /d針對文件選擇的日期范圍,把最新的更改日期當(dāng)作文件標(biāo)準(zhǔn)。當(dāng)/d參數(shù)是MM/DD/YYYY格式時,滿足指定的+/-日期標(biāo)準(zhǔn)的文件也包含在內(nèi)。當(dāng)文件格式是smallint (-32,768 - 32,768)文件+/-文件并且?guī)е粋€更改日期+/-時,從當(dāng)前日期到該日期的時間數(shù)目將會包含在這個文件結(jié)果集中。 變量 變量名描述 @FILE文件名 @FNAME無擴展的文件名 @EXT文件擴展名 @PATH文件絕對路經(jīng) @RELPATH文件的相對路徑 @ISDIR如果文件類型是一個目錄,那么判斷是否是TRUE @FSIZE文件大小(用字節(jié)衡量) @FDATE文件上的最新更改日期郵戳 @FTIME文件上的最新更改時間郵戳
利用這些參數(shù)可以構(gòu)造下面的例子來解決你刪除備份腳本文件的難題。你可以基于更改時間/日期或者備份類型來創(chuàng)建腳本。你甚至可以構(gòu)造能夠同時參照兩種標(biāo)準(zhǔn)的腳本。 我們將仔細(xì)看看這些可能的腳本。記住,你將從T-SQL代碼內(nèi)部執(zhí)行這個過程,所以你需要在一個xp_cmdshell訪問中以EXEC xp_cmdshell 'FORFILES COMMAND'的格式總結(jié)這些語句。請注意,在所有的例子中我都會使用/Q 和 /F標(biāo)簽來作為刪除命令。這意味著這個命令將使用安靜模式(/Q)甚至刪除只能讀的文件(/F)。 例子 當(dāng)文件更改日期晚于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"' 當(dāng)文件更改日期多于30天時,刪除所有C:Backup目錄和它的子目錄下的.sql文件。 EXEC xp_cmdshell 'FORFILES /p c:BACKUP /s /m *.sql /d -30 /c "CMD /C del /Q /F @FILE"' 當(dāng)文件更改日期多于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"'
|
|
來自: HDTV > 《備份與恢復(fù)》
联系客服
微信扫码,添加客服企业微信
客服QQ:
1732698931联系电话:4000-999-276
客服工作时间9:00-18:00,晚上非工作时间,请在微信或QQ留言,第二天客服上班后会立即联系您。