亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > BAT > 正文

用批處理文件自動備份文件及文件夾,并自動刪除n天前的文件

2020-07-26 20:20:08
字體:
來源:轉載
供稿:網友
下是備份的批處理,添加到"計劃任務"中,設定時間自動運行
復制代碼 代碼如下:

@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 <執行的命令>
看看列出的三個參數都有什么用處:
/p 指定了要在哪個目錄里查找文件,默認是當前工作目錄。
/d 指定一個日期或天數,用于比較文件的最后修改日期是否符合條件。
/c 對每個找到的文件執行的命令。
例1.要把在C盤根目錄下最后修改日期大于或等于2007年7月1日的文件復制到D盤根目錄下:
forfiles /p "c:/" /d "2007-7-1" /c "cmd /c copy @path d:/"
例2.刪除在C盤backup目錄下最后修改日期在10天前的文件:
forfiles /p "c:/backup" /d -10 /c "cmd /c echo deleting @file ... && del /f @path"
先看刪除文件的代碼
forfiles /p 包含要刪除文件的完整路徑(如:F:/Logfiles) /m *.log -d -7 /c "cmd /c del /f @path"
解釋一下相關參數及命令
/p <Path> : 指定開始搜索文件的位置,如果不指定則默認為當前目錄。
/m <SearchMask> : 文件查找所使用的通配符如代碼中的"*.log"則為所有日志文件,當然也可以指定諸如"manmee_*.log"這樣以manmee開頭的所有日志文件。如果不指定此參數則默認為"*.*"。
/d [{+|-}][{<Date>|<Days>}] : 指定想選擇文件的最后修改時間,上文中用了 "/d -7" 表示所有以當天為基礎,7天以前的文件。當然這里還可以指定具體時間,例如:"/d -08/18/2009"這樣所有早于2009年8月18日的文件。注意指定的時間必須是"MM/DD/YYYY"的格式。
/c 對所有文件以此執行指定的命令,命令體須在雙引號(")內,默認是"cmd /c echo @file"。上文中用到的是"cmd /c del /f @path"刪除指定文件。(這里的@file 和 @path 為變量,下文中將解釋。)
下面說一下上文中用到的參數:
@PATH : 表示文件的完整的路徑。
@File : 表示文件名稱。
其他參數的詳細介紹點擊這里。
接下來我們看看刪除文件夾的操作,如果你看了上面的介紹,相信這命令你一看就能看懂。
forfiles /p 包含文件夾的路徑(如:F:/) /m 文件夾名稱(如:LogFiles) -d 0 /c "cmd /c if @ISDIR == true rd /s/q @path"
注意這里的"包含文件夾的路徑"不能包含要刪除的文件夾,如以上代碼所表示的就是,在F盤中查找名為LogFiles的文件或文件夾(不能指定查找文件夾,不過在刪除時我們做了判斷)。
還有就是這里出現了一個新的參數"@ISDIR"他用于判斷當前文件類型是否是"文件夾類型",如果是則為true否則為false。
相信到這大家就明白了,最后再將代碼保存為批處理文件,然后加入計劃任務定期執行即可。
看了上面的例子,覺得在 Windows Server 2003 下面要刪除老文件很簡單吧。
但如果操作系統是 Windows 2000/XP 就比較麻煩,因為它們沒有forfiles命令,只能靠自己寫批處理來實現了。
下面是我寫的批處理文件內容:
復制代碼 代碼如下:

@echo off
rem ******************************
rem * 按時間刪除文件目錄的批處理 *
rem ******************************
rem 設置臨時目錄的路徑
set tempDir=%tmp%/remove_%date:~0,10%
if not exist %tempDir% md %tempDir%
rem 設置處理日期的腳本文件的路徑
set scriptFile=%tempDir%/get_date.vbs
rem 獲得要保留的天數
set days=%~1
if "%days%" == "" goto printUsage
rem 獲得目標目錄的路徑
set dirPath=%~2
if "%dirPath%" == "" set dirPath=.
rem 獲得要操作的文件形式
set fileSpec=%~3
if "%fileSpec%" == "" set fileSpec=*.*
rem 生成計算日期的腳本文件并獲得刪除的截止日期
echo d=date()-%1 > %scriptFile%
echo s=right("0000" ^& year(d),4) ^& "-" ^& right("00" ^& month(d),2) ^& "-" ^& right("00" ^& day(d),2) >> %scriptFile%
echo wscript.echo s >> %scriptFile%
for /f %%i in ('cscript /nologo %scriptFile%') do set lastDate=%%i
rem 處理目標目錄里的每個對象
for /f "tokens=1,2,3* delims=<> " %%i in ('dir "%dirPath%/%fileSpec%" /a /-c /tc') do call :proc "%%i" "%%j" "%%k" "%%l"
goto :done
rem 處理目標目錄里對象的過程
:proc
rem 獲得對象的創建日期并判斷是否為有效格式
set fileDate=%~1
echo %fileDate% | findstr "[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]" > nul
if errorlevel 1 goto end
rem 獲得對象的類型
set fileType=%~3
if "%fileType%" == "" goto end
rem 獲得對象的名稱
set fileName=%~4
if "%fileName%" == "" goto end
if "%fileName%" == "." goto end
if "%fileName%" == ".." goto end
if "%fileName%" == "字節" goto end
if "%fileName%" == "可用字節" goto end
rem 判斷對象日期是否小于或等于刪除的截止日期
if "%fileDate:~0,10%" leq "%lastDate%" (
echo deleting "%fileName%" ...
if "%fileType%" == "DIR" ( rd /s /q "%dirPath%/%fileName%" ) else ( del /q /f "%dirPath%/%fileName%" )
)
goto end
:error
echo An error occurred during backuping.
:done
rd /s /q %tempDir%
goto end
:printUsage
echo Usage: %0 ^<Days^> [Work directory] [Target file specification (can include wildcards)]
goto end
:end

主要是利用Windows的腳本功能來計算要刪除文件的截止日期,然后for加dir命令來提取文件的日期進行判斷。
關于forfiles和for的詳細信息,可以在Windows的幫助與支持中找到。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97色在线播放视频| 夜夜狂射影院欧美极品| 高清视频欧美一级| 国产中文字幕日韩| 国产一区二区三区在线观看视频| 午夜精品视频网站| 国产精品久久久久久av福利| 成人疯狂猛交xxx| 91精品国产777在线观看| 国产精品第2页| 成人午夜高潮视频| 亚洲精品白浆高清久久久久久| 国产精品高潮呻吟视频| 日韩中文字幕在线视频播放| 亚洲一区二区中文字幕| 亚洲国产成人精品久久| 国产香蕉一区二区三区在线视频| 色yeye香蕉凹凸一区二区av| 国产精品久久久久不卡| 欧美第一页在线| 成人免费视频xnxx.com| 日韩小视频网址| 亚洲视频第一页| 亚洲男人第一av网站| 亚洲美女av电影| 欧美极品在线播放| 爱福利视频一区| 98精品国产高清在线xxxx天堂| 色伦专区97中文字幕| 国产精品日韩一区| 91精品国产自产在线观看永久| 国产精品中文字幕在线观看| 91免费看视频.| 成人午夜在线观看| 亚洲香蕉伊综合在人在线视看| 97热在线精品视频在线观看| 亚洲高清福利视频| 国产成人精彩在线视频九色| 在线观看中文字幕亚洲| 亚洲精品自在久久| 日韩精品视频免费专区在线播放| 91精品国产高清久久久久久91| 久久91精品国产| 国产精品久久久久久久久久东京| 国产成人精品免高潮在线观看| 美女福利精品视频| 热久久免费国产视频| 欧美色播在线播放| 国产日韩欧美一二三区| 欧美午夜美女看片| 激情亚洲一区二区三区四区| 日韩欧美亚洲国产一区| 91精品美女在线| 国产成人91久久精品| 欧美大片在线看| 日本人成精品视频在线| 91精品国产91久久久| 亚洲一二在线观看| 欧美日韩xxxxx| 正在播放欧美一区| 久久国产精品亚洲| 98精品国产自产在线观看| 国产精品av免费在线观看| 中文字幕一区电影| 亚洲男女自偷自拍图片另类| 久久久噜噜噜久久中文字免| 欧美精品免费在线| 国产欧美中文字幕| 九色成人免费视频| 亚洲石原莉奈一区二区在线观看| 亚洲精品成a人在线观看| 精品久久久国产精品999| 国产aⅴ夜夜欢一区二区三区| 尤物tv国产一区| 激情久久av一区av二区av三区| 成人黄色免费片| 欧美性开放视频| 国产成人亚洲综合91| 亚洲国产精品成人一区二区| 欧美影院久久久| 日韩欧美一区二区在线| 色播久久人人爽人人爽人人片视av| 欧美色播在线播放| 亚洲图片欧洲图片av| 久久久精品美女| 久久中国妇女中文字幕| 中文字幕欧美日韩在线| 一区二区在线视频| 97色在线播放视频| 国产裸体写真av一区二区| 亚洲欧美精品一区| 久久精品青青大伊人av| 青青在线视频一区二区三区| 九九热精品视频在线播放| 精品国产一区久久久| 国产精国产精品| 成人午夜一级二级三级| 668精品在线视频| 欧美刺激性大交免费视频| 91理论片午午论夜理片久久| 欧美最猛黑人xxxx黑人猛叫黄| 欧美精品一区二区免费| 欧美成人免费小视频| 国产精品久久久久久超碰| 91超碰caoporn97人人| 亚洲老司机av| 日韩高清免费在线| 91在线网站视频| 国产在线视频欧美| 91精品视频网站| 国产精品白嫩初高中害羞小美女| 久久精品一偷一偷国产| 欧美日韩国产在线看| 国产综合久久久久久| 精品一区二区电影| 欧美福利小视频| 最新69国产成人精品视频免费| 亚洲国产精品字幕| 欧美精品18videosex性欧美| 国产精品pans私拍| www.xxxx精品| 亚洲一级一级97网| 国产精品久久久久一区二区| 欧美老少做受xxxx高潮| 综合136福利视频在线| 国产精品va在线播放我和闺蜜| 日韩精品在线免费| 国产亚洲欧美日韩精品| 国语自产在线不卡| 久久成人国产精品| 国语对白做受69| 久久夜色精品国产| 日韩天堂在线视频| 亚洲免费av电影| 国产精品吹潮在线观看| 日韩欧美在线视频日韩欧美在线视频| 欧美亚洲在线视频| 欧美性极品少妇精品网站| 欧美成aaa人片免费看| 日韩专区在线播放| 国产97色在线| www.国产精品一二区| 日韩激情av在线播放| 国产精品va在线播放我和闺蜜| 一区二区亚洲精品国产| 欧美激情一级精品国产| 久久精品电影网| 日韩精品免费观看| 国产精品三级美女白浆呻吟| 国产999在线观看| 国外成人免费在线播放| 精品久久久久久中文字幕一区奶水| 2019国产精品自在线拍国产不卡| 欧美日韩国产中文精品字幕自在自线| 91成人国产在线观看| 欧美高清理论片| 中文字幕亚洲自拍| 日韩成人免费视频| 成人黄色大片在线免费观看| 欧美性色xo影院| 亚洲娇小xxxx欧美娇小| 亚洲美女在线观看| 亚洲国产一区二区三区四区| 91精品一区二区|