用批處理文件自動備份文件及文件夾,并自動刪除n天前的文件
2020-06-09 13:52:20
供稿:網友
下是備份的批處理,添加到"計劃任務"中,設定時間自動運行
代碼如下:
@echo off
rem 格式化日期
rem date出來的日期是"2006-02-22 星期三",不能直接拿來使用,所以應該先格式化一下
rem 變成我們想要的。date:~0,4的意思是從0開始截取4個字符
set d=%date:~0,4%%date:~5,2%%date:~8,2%
rem 設定壓縮程序路徑,這里用的是WINRAR的rar.exe進行打包的
set path=C:/Program Files/WinRAR
rem 設定要備份的目錄
set srcDir=D:/databasc
rem 設定備份文件所在目錄
set dstDir=E:/temp/backup
rem 設定備份文件的前綴,目前為temp,前綴為backup
set webPrefix=
rem 如果文件不存在,開始備份
if not exist %dstDir%%webPrefix%%d%.rar start Rar a -r %dstDir%%webPrefix%%d%.rar %srcDir%
@echo on
以下是刪除N天前備份文件的批處理,注:在windows2003下,如XP下因為沒有forfiles.exe,未測試拷貝2003的文件到XP的system32目錄
刪除在C盤backup目錄下最后修改日期在10天前的文件
=================================================================================
forfiles /p "c:/backup" /d -10 /c "cmd /c echo deleting @file ... && del /f @path"
=================================================================================
以下是復制某天前文件到其它位置的批處理
要把在C盤根目錄下最后修改日期大于或等于2007年7月1日的文件復制到D盤根目錄下
=================================================================================
forfiles /p "c:/" /d "2007-7-1" /c "cmd /c copy @path d:/"
Windows Server 2003內置的命令行文件,適合于XP以上系統
示例:
forfiles /m *.bkf /d -28 /c "cmd /c del @file /f"
刪除當前目錄下28天以前的擴展名為bkf文件(以當前系統時間為基準)
forfiles 自動刪除7天前文件 delete
2008-09-12 15:01
用forfiles.exe試試。
forfiles /p "d:/test" /s /m *.* /d -7 /c "cmd /c del @path"
做成批處理文件,bat文件與forfiles.exe同一目錄下,建一個bat文件的快捷方式在啟動。
d:/test換成你要的目錄路徑。日期是指修改的日期。
附上forfiles.exe及幫助。
刪除所有的空目錄(以刪除d:/test目錄下為例)
dir /ad/b/s d:/test/ |sort /r >d:/kill.txt
For /f "tokens=*" %%i in (d:/kill.txt) DO rd "%%i"
del d:/kill.txt
把以下復制到bat文件中。
@echo off
forfiles /p "d:/test" /s /m *.* /d -7 /c "cmd /c del @path"
dir /ad/b/s d:/test/ |sort /r >d:/kill.txt
For /f "tokens=*" %%i in (d:/kill.txt) DO rd "%%i"
del d:/kill.txt
先刪過期文件,再刪所有的空目錄
如果操作系統是 Windows Server 2003 那就好辦了,因為它有一個forfiles命令能夠查找滿足指定條件的文件,下面是這個命令的用法。
forfiles /p <目標目錄名> /d <天數> /c <執行的命令>
看看列出的三個參數都有什么用處: