windows下mysql自動備份指令碼
阿新 • • 發佈:2021-08-24
@echo off set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%" cd C:\Program Files\MariaDB 10.2\bin&&mysqldump -hlocalhost -uroot -pxxxxx --single-transaction --opt --events --triggers --routines -B itsm > Z:\itop_mysql_backup\itsm_%Ymd%.sql forfiles /p "Z:\itop_mysql_backup" /s /m *.sql /d -5 /c "cmd /c del @path" @echo on
Forfiles
從資料夾或樹中選擇要進行批處理的檔案。
語法
forfiles[/pPath] [/mSearchMask] [/s] [/cCommand] [/d[{+|-}] [{MM/DD/YYYY|DD}]]
引數
- /pPath
- 指定Path,表明要從哪裡開始搜尋。預設的資料夾是當前工作目錄,該目錄通過鍵入句號 (.) 指定。
- 注:絕對路徑應該包含在雙引號中,且路徑應該由反斜槓分割:example:"D:\HOME\Desktop\62backup"
- /mSearchMask
- 按照SearchMask搜尋檔案。預設的SearchMask是*.*。
- /s
- 指示forfiles在子目錄中搜索。
- /cCommand
- 在每個檔案上執行指定的Command。帶有空格的命令字串必須用引號括起來。預設的Command是"cmd /c echo @file"。
- /d[{+|-}] [{MM/DD/YYYY|DD}]
- 選擇日期大於或等於 (+)(或者小於或等於 (-))指定日期的檔案,其中MM/DD/YYYY是指定的日期,DD是當前日期減去DD天。如果未指定+或-,則使用+。DD的有效範圍是 0 - 32768。
- /?
- 在命令提示符下顯示幫助。
註釋
- Forfiles最常用於批處理檔案中。
- Forfiles/s與dir /s類似。
- 下表列出了在/cCommand命令字串中能夠使用的變數。
變數 描述 @file 檔名 @fname 無副檔名的檔名 @ext 副檔名 @path 檔案的完整路徑 @relpath 檔案的相對路徑 @isdir 如果檔案型別是目錄,值為 TRUE,否則值為 FALSE @fsize 用位元組表示的檔案大小 @fdate 檔案中上次修改的日期戳 @ftime 檔案中上次修改的時間戳 - 使用forfiles,可以在多個檔案上執行命令或將引數傳遞給多個檔案。例如,可以在樹中帶有 *.txt 副檔名的所有檔案上執行 TYPE 命令。或者,可以用檔名“Myinput.txt”作為第一個引數,在 C:/ 驅動器上執行每個批處理檔案 (*.bat)。
- 通過使用forfiles,可以執行下列任何操作:
- 使用/d按照絕對或相對日期選擇檔案。
- 使用諸如 @fsize(檔案大小)和 @fdate(檔案日期)這樣的變數構建檔案的存檔樹。
- 使用 @isdir 變數區分檔案和目錄。
- 通過在命令列中包含特殊字元和使用十六進位制程式碼0xHH環繞字元來格式化輸出內容。
- Forfiles通過在旨在僅處理單個檔案的工具上執行“迴圈子目錄”標記來發揮作用。
示例
自動刪除d:\test下超過7天的.bak的檔案
forfiles /p "d:\test" /s /m *.bak /d -7 /c "cmd /c del @path"
要列出驅動器 C: 上的所有批處理檔案,請鍵入:
forfiles/p c:/ /s /m*.bat /c"cmd /c echo @file is a batch file"
要列出驅動器 C: 上的所有目錄,請鍵入:
forfiles/p c:/ /s /m*.* /c"cmd /c if @isdir==true echo @file is a directory"
要列出驅動器 C: 上存在時間多於 100 天的所有檔案,請鍵入:
forfiles/p c:/ /s /m*.* /dt-100 /c"cmd /c echo @file : date >= 100 days"
喜歡請讚賞一下啦^_^微信讚賞
支付寶讚賞