如何删除过期的数据库备份文件呢? .
通過 Forfiles 刪除指定目錄下過期的備份文件
/*-- 用法詳解
D:/>forfiles /?
?
FORFILES [/P pathname] [/M searchmask] [/S]
???????? [/C command] [/D [+ | -] {yyyy-MM-dd | dd}]
?
描述 :
??? 選擇一個(gè)文件 ( 或一組文件 ) 并在那個(gè)文件上
??? 執(zhí)行一個(gè)命令。這有助于批處理作業(yè)。
?
參數(shù)列表 :
??? /P??? pathname????? 表示開始搜索的路徑。默認(rèn)文件夾是當(dāng)前工作的
??????????????????????? 目錄 (.) 。
?
??? /M??? searchmask??? 根據(jù)搜索掩碼搜索文件。默認(rèn)搜索掩碼是 '*' 。
?
??? /S????????????????? 指導(dǎo) forfiles 遞歸到子目錄。像 "DIR /S" 。
?
??? /C??? command?????? 表示為每個(gè)文件執(zhí)行的命令。命令字符串應(yīng)該
? ?????????????????????? 用雙引號(hào)括起來。
?
??????????????????????? 默認(rèn)命令是 "cmd /c echo @file" 。下列變量
??????????????????????? 可以用在命令字符串中 :
??????????????????????? @file??? - 返回文件名。
??????????????????????? @fname?? - 返回不帶擴(kuò)展名的文件名。
??????????????????????? @ext???? - 只返回文件的擴(kuò)展。
??????????????????????? @path??? - 返回文件的完整路徑。
??????????????????????? @relpath - 返回文件的相對(duì)路徑。
??????????????????????? @isdir?? - 如果文件類型是目錄,返回 "TRUE" ;
?????????????????????????????????? 如果是文件,返回 "FALSE" 。
??????????????????????? @fsize?? - 以字節(jié)為單位返回文件大小。
?????? ????????????????? @fdate?? - 返回文件上一次修改的日期。
??????????????????????? @ftime?? - 返回文件上一次修改的時(shí)間。
?
??????????????????????? 要在命令行包括特殊字符,字符請(qǐng)以 0xHH
??????????????????????? 形式使用十六進(jìn)制代碼 ( 例如, x09 為 tab) 。
??????????????????????? 內(nèi)部 CMD.exe 命令前面應(yīng)以 "cmd /c" 開始。
?
??? /D??? date? ???????? 選擇文件,其上一次修改日期大于或等于 (+) ,
??????????????????????? 或者小于或等于 (-) 用 "yyyy-MM-dd" 格式指定的日期 ;
??????????????????????? 或選擇文件,其上一次修改日期大于或等于 (+)
??????????????????????? 當(dāng)前日期加 "dd" 天,或者小于或等于 (-) 當(dāng)前
??????????????????????? 日期減 "dd" 天。有效的 "dd" 天數(shù)可以是
????????????????????? ?? 0 - 32768 范圍內(nèi)的任何數(shù)字。如果沒有指定,
??????????????????????? "+" 被當(dāng)作默認(rèn)符號(hào)。
?
??? /?????????????????? 顯示幫助消息。
?
例如 :
??? FORFILES /?
??? FORFILES
??? FORFILES /P C:/WINDOWS /S /M DNS*.*?
?????? -- 顯示 C:/WINDOWS 目錄及子目錄下 DNS 開頭的所有文件名
??? FORFILES /S /M *.txt /C "cmd /c type @file | more"
?????? -- 顯示當(dāng)前目錄下所有 TXT 文件的內(nèi)容
??? FORFILES /P C:/ /S /M *.bat?
?????? -- 顯示 C 盤目錄下及子目錄下所有文件后綴名為 bat 的文件名
??? FORFILES /D -30 /M *.exe
?????? -- 顯示當(dāng)前目錄下修改日期小于等于天前的 exe 文件名
???????????? /C "cmd /c echo @path 0x09 在 30 前就被更改。 "?
????????????????? -- 顯示當(dāng)前目錄下所有文件的完整路徑并在后面追加 ‘ 在 30 前就被更改 ’ 的文字
??? FORFILES /D 2001-01-01?
?????? -- 顯示當(dāng)前目錄下修改日期大于等于 -01-01 的文件名 ( 含文件夾名 )
???????????? /C "cmd /c echo @fname 在 2001 年月日就是新的。 "?
????????????????? -- 顯示當(dāng)前目錄下所有文件名并在后面追加 ‘ 在 30 前就被更改 ’ 的文字
??? FORFILES /D +2009-8-18 /C "cmd /c echo @fname 今天是新的。 "
?????? -- 顯示當(dāng)前目錄下修改日期大于等于 -8-18 的文件名并在后面追加 ‘ 今天是新的 ’ 的文字
??? FORFILES /M *.exe /D +1?
?????? -- 顯示當(dāng)前目錄下修改日期大于等于明天的 exe 文件名
??? FORFILES /S /M *.doc /C "cmd /c echo @fname @fsize"?
?????? -- 顯示當(dāng)前目錄及子目錄下所有 doc 文件的文件名和文件大小
??? FORFILES /M *.txt /C "cmd /c if @isdir==FALSE notepad.exe @file"
?????? -- 打開當(dāng)前目錄下 txt 文件,不含子文件。 ( 注意變量 isdir 后面的 FALSE 必須為大寫 )
?
*/
?
?
目的:刪除目錄 i: /sqldataup 中天前的 . bak 文件:
步驟:
1 、定義 FORFILES 批處理腳本如下:
C: /> FORFILES / P i: /sqldataup / M *. bak / C "cmd /C del /Q @path" / d - 5
如果執(zhí)行成功則返回當(dāng)前盤符 C: /> 。
-- 如果沒有需要?jiǎng)h除的文件則返回信息錯(cuò)誤 : 用指定的搜索標(biāo)準(zhǔn)沒有找到文件。比如:
--C:/>FORFILES /P i:/sqldataup /M *.bak /C "cmd /C del /Q @path" /d -5
-- 錯(cuò)誤 : 用指定的搜索標(biāo)準(zhǔn)沒有找到文件。
轉(zhuǎn)載于:https://www.cnblogs.com/amylis_chen/p/3585446.html
總結(jié)
以上是生活随笔為你收集整理的如何删除过期的数据库备份文件呢? .的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用yum安装完mysql后没有mysql
- 下一篇: MYSQL复制的几种模式