1. 程式人生 > 其它 >windows下mysql自動備份指令碼

windows下mysql自動備份指令碼

@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/sdir /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"

喜歡請讚賞一下啦^_^

微信讚賞

支付寶讚賞