標籤:logo 檔案名稱 enabled 目錄 art col led style bak
目的:
1.計劃每天每半小時備份1次,每天8點開始,執行12小時,20點結束。
2.定期刪除曆史備份檔案,由於每天有多個時間段備份,刪除前只保留當天最後一個備份。
說明:
由於刪除的操作只有每天第一次執行時才真正起作用,可將以下命令拆分成兩個計劃任務分別執行,當然也可一起執行。可具體根據執行的效率定奪。
實施:
1.將以下代碼儲存為back.bat,修改源檔案路徑和備份目錄
@echo offrem 備份指定目錄下的檔案set "Ymd=%date:~,4%-%date:~5,2%-%date:~8,2%"set "Sfm=%time:~,2%%time:~3,2%"rem 備份後的路徑為C:\backup\2017-09-07\1430.bak。echo f | xcopy "源檔案路徑" "C:\backup\%Ymd%\%Sfm%.bak" >nul 2>nulrem 刪除指定路徑下指定天數之前(以檔案名稱中包含的日期文字為準比如:2009-12-25)的檔案。rem 指定待刪除檔案的存放路徑set SrcDir=C:\backuprem 指定天數set DaysAgo=5>>"%temp%/DstDate.vbs" echo LastDate=date()-%DaysAgo%>>"%temp%/DstDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)>>"%temp%/DstDate.vbs" echo wscript.echo FmtDatefor /f %%a in (‘cscript /nologo "%temp%/DstDate.vbs"‘) do ( set "DstDate=%%a")set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%setlocal enabledelayedexpansionfor /f "delims=" %%a in (‘dir /b/s/ad "%SrcDir%"‘) do ( set "FileDate=%%~na" if "!FileDate!" leq "%DstDate%" ( if exist "%%a" ( rem 刪除之前將最後一個檔案備份到曆史檔案夾中 move "%%a\2000.bak" "C:\backup\history\!FileDate!.bak" rd /s /q "%%a" ) ))endlocal:: exit
2.設定windows計劃任務,具體可參考http://blog.csdn.net/woshixuye/article/details/18050769
通過windows計劃任務和Dos批處理備份檔案