使用FORFILES命令來刪除SQLServer備份的批處理
該FORFILES命令將選取文件的一個子集并且針對這個子集執(zhí)行一個命令。這個命令需要下面的參數(shù)和接受下面的變量。
參數(shù)
參數(shù)名 | 描述 |
/p | 路徑 |
/m | 檢索屏蔽 (默認情況下是 *.*) |
/s | 如果包含這個參數(shù),那么子目錄將會被遞歸地檢索。 |
/c <command> | 針對結(jié)果集中的每一個文件執(zhí)行命令,命令必須包含在雙引號中,默認情況是"cmd c/ echo @file" |
/d | 針對文件選擇的日期范圍,把最新的更改日期當作文件標準。當/d參數(shù)是MM/DD/YYYY格式時,滿足指定的+/-日期標準的文件也包含在內(nèi)。當文件格式是smallint (-32,768 - 32,768)文件+/-文件并且?guī)е粋€更改日期+/-時,從當前日期到該日期的時間數(shù)目將會包含在這個文件結(jié)果集中。 |
變量
變量名 | 描述 |
@FILE | 文件名 |
@FNAME | 無擴展的文件名 |
@EXT | 文件擴展名 |
@PATH | 文件絕對路經(jīng) |
@RELPATH | 文件的相對路徑 |
@ISDIR | 如果文件類型是一個目錄,那么判斷是否是TRUE |
@FSIZE | 文件大小(用字節(jié)衡量) |
@FDATE | 文件上的最新更改日期郵戳 |
@FTIME | 文件上的最新更改時間郵戳 |
利用這些參數(shù)可以構(gòu)造下面的例子來解決你刪除備份腳本文件的難題。你可以基于更改時間/日期或者備份類型來創(chuàng)建腳本。你甚至可以構(gòu)造能夠同時參照兩種標準的腳本。
我們將仔細看看這些可能的腳本。記住,你將從T-SQL代碼內(nèi)部執(zhí)行這個過程,所以你需要在一個xp_cmdshell訪問中以EXEC xp_cmdshell 'FORFILES COMMAND'的格式總結(jié)這些語句。請注意,在所有的例子中我都會使用/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"'
相關(guān)文章
SqlServer中tempdb的日志機制原理解析及示例分享
tempdb為什么比其他數(shù)據(jù)庫快?估計95%以上的程序員們都一臉茫然.Tempdb作為Sqlserver的重要特征,一直以來大家對它可能即熟悉又陌生.熟悉是我們時時刻刻都在用,陌生可能是很少有人關(guān)注它的運行機制.這次我將通過實例給大家介紹下tempdb的日志機制.2014-08-08SQL server 定時自動備份數(shù)據(jù)庫的圖文方法
這篇文章主要介紹了SQL server 定時自動備份數(shù)據(jù)庫的圖文方法,需要的朋友可以參考下2017-02-02sqlserver 因為選定的用戶擁有對象,所以無法除去該用戶的解決方法
這篇文章主要介紹了sqlserver 因為選定的用戶擁有對象,所以無法除去該用戶,因為是附加數(shù)據(jù)庫選擇了與源服務(wù)器一樣的用戶導(dǎo)致2016-04-04如何在navicat中利用sql語句建表+添加數(shù)據(jù)
這篇文章主要給大家介紹了關(guān)于如何在navicat中利用sql語句建表+添加數(shù)據(jù)的相關(guān)資料,Navicat是一套快速,專為簡化數(shù)據(jù)庫的管理及降低系統(tǒng)管理成本而設(shè),它的設(shè)計符合數(shù)據(jù)庫管理員、開發(fā)人員及中小企業(yè)的需要,需要的朋友可以參考下2023-10-10如何恢復(fù)數(shù)據(jù)庫的賬號 登錄名/用戶名等
當重裝數(shù)系統(tǒng)/數(shù)據(jù)庫之后,如何恢復(fù)數(shù)據(jù)庫的賬號 登錄名/用戶名 孤立用戶 縮小ldf日志文件 修改sqlserver2000端口2013-08-08SQL?Server數(shù)據(jù)庫入門教程之多表查詢
這篇文章主要給大家介紹了關(guān)于SQL?Server數(shù)據(jù)庫入門教程之多表查詢的相關(guān)資料,多表查詢是SQL數(shù)據(jù)庫里的高級查詢語句,文中通過圖文以及實例代碼介紹的非常詳細,需要的朋友可以參考下2023-06-06SQL Server中T-SQL 數(shù)據(jù)類型轉(zhuǎn)換詳解
T-SQL提供了兩個顯示轉(zhuǎn)換的函數(shù):CAST函數(shù)和CONVERT函數(shù)。今天我們就來相信探討下2018-02-02SqlServer數(shù)據(jù)庫全角轉(zhuǎn)換成半角
SqlServer數(shù)據(jù)庫全角轉(zhuǎn)換成半角,需要的朋友可以參考一下2013-03-03