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

首頁 > 編程 > BAT > 正文

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

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

@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
亚洲无限乱码一二三四麻| 欧美国产欧美亚洲国产日韩mv天天看完整| 欧美午夜美女看片| 在线成人免费网站| 国产69久久精品成人| 成人高清视频观看www| 最近免费中文字幕视频2019| 亚洲欧美成人一区二区在线电影| 亚洲国产日韩欧美在线图片| 亚洲成人久久久久| 欧美一区二区色| 久久影院在线观看| 一本久久综合亚洲鲁鲁| 国产成人jvid在线播放| 国产99在线|中文| 午夜精品一区二区三区av| 欧美亚洲国产另类| 清纯唯美亚洲综合| 色妞在线综合亚洲欧美| 欧美精品精品精品精品免费| 黄色成人在线播放| 久久久99久久精品女同性| 国产日韩欧美在线看| 91免费的视频在线播放| 国产日韩av在线播放| 51久久精品夜色国产麻豆| 日韩美女免费视频| 欧美黄网免费在线观看| 欧美性猛交xxxx| 国产一区二区三区欧美| 国产精品福利网| 亚洲天堂精品在线| 97视频在线观看亚洲| 5566日本婷婷色中文字幕97| 欧美黄网免费在线观看| 91亚洲午夜在线| 日韩av在线影院| 久久久久久久一区二区三区| 亚洲国产精品系列| 久久综合网hezyo| 久久久久久18| 欧美另类老肥妇| 久99九色视频在线观看| 国产精品青草久久久久福利99| 国产91亚洲精品| 夜夜嗨av色一区二区不卡| 中文字幕无线精品亚洲乱码一区| 欧美性视频在线| 国模gogo一区二区大胆私拍| 韩剧1988免费观看全集| 91色在线视频| 91在线观看免费观看| 91欧美精品午夜性色福利在线| 亚洲人成网7777777国产| 亚洲国内高清视频| 国产九九精品视频| 亚洲xxxxx性| 国产精品免费视频xxxx| 国产成人精品久久久| 国产精品久久久久久久av大片| 中文字幕亚洲无线码a| 国产精品入口夜色视频大尺度| 91久久精品国产91久久性色| 精品久久久久久亚洲国产300| 狠狠色狠色综合曰曰| 日韩av免费在线观看| 久久精品91久久香蕉加勒比| 91美女福利视频高清| 国产香蕉97碰碰久久人人| 亚洲精品日韩久久久| 久久免费精品视频| 国外成人在线播放| 久久国产精品视频| 国产精品视频网站| 久久视频免费在线播放| 欧美亚洲激情视频| 国产在线精品一区免费香蕉| 在线观看欧美视频| 91精品久久久久久久久不口人| 亚洲欧美一区二区三区情侣bbw| 91精品美女在线| 91香蕉嫩草影院入口| 91精品久久久久久久久青青| 欧美激情欧美激情在线五月| 91丝袜美腿美女视频网站| 久久久久一本一区二区青青蜜月| 成人黄色短视频在线观看| 久久精品夜夜夜夜夜久久| 91精品国产自产91精品| 日韩黄色高清视频| 久久久久久久久久久av| 亚洲精品久久久久久久久久久久| 欧美性猛交xxxx偷拍洗澡| 日韩中文字幕在线观看| 亚洲精品第一国产综合精品| 伊人久久综合97精品| 国产精品激情av电影在线观看| 亚洲精品成a人在线观看| 高清亚洲成在人网站天堂| 欧美日韩在线免费观看| 亚洲精品国产精品国自产在线| 亚洲国产另类 国产精品国产免费| 色综合91久久精品中文字幕| www.99久久热国产日韩欧美.com| 亚洲iv一区二区三区| 亚洲欧洲成视频免费观看| 日韩经典一区二区三区| 午夜精品在线观看| 亚洲免费一级电影| 亚洲a成v人在线观看| 久久久久久有精品国产| 日韩精品黄色网| 成人激情视频免费在线| 亚洲天堂男人的天堂| 精品视频在线播放| 有码中文亚洲精品| 日韩有码片在线观看| 欧美午夜性色大片在线观看| 欧美激情一二区| 中文字幕亚洲图片| 亚洲四色影视在线观看| 亲子乱一区二区三区电影| 亚洲欧洲午夜一线一品| www.久久草.com| 全亚洲最色的网站在线观看| 91日本视频在线| 欧美激情一区二区三区成人| 国产91精品最新在线播放| 国产精品普通话| 欧美高清在线视频观看不卡| 欧美精品一区二区三区国产精品| 尤物九九久久国产精品的分类| 欧美另类在线播放| 国产精品视频999| 欧美黄色成人网| 中文字幕亚洲欧美日韩高清| 俺去了亚洲欧美日韩| 日韩在线小视频| 91欧美精品午夜性色福利在线| 久久久久这里只有精品| 成人在线国产精品| 欧洲永久精品大片ww免费漫画| 亚洲经典中文字幕| 国产视频精品一区二区三区| 亚洲第一黄色网| 97国产精品人人爽人人做| 久久久久中文字幕| 日韩欧美在线观看| 成人性生交大片免费看小说| 日韩av手机在线观看| 91日本在线观看| 隔壁老王国产在线精品| 亚洲第一网站男人都懂| 欧美成人免费小视频| 久久精品国产精品亚洲| 久久久久九九九九| 日韩欧美中文第一页| 91高清视频在线免费观看| 欧美高清激情视频| 国产噜噜噜噜久久久久久久久| 一本久久综合亚洲鲁鲁| 色偷偷888欧美精品久久久| 国产香蕉精品视频一区二区三区| 精品久久久久久久久久久久|