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

首頁 > 編程 > BAT > 正文

批處理bat刪除指定天數日期之前的文件

2020-03-29 19:56:20
字體:
來源:轉載
供稿:網友

【方案一】刪除指定路徑下指定天數之前(以文件的最后修改日期為準)的文件:BAT + REG + VBS

 

復制代碼 代碼如下:

@echo off
::演示:刪除指定路徑下指定天數之前(以文件的最后修改日期為準)的文件。
::如果演示結果無誤,把del前面的echo去掉,即可實現真正刪除。
::本例調用了臨時VBS代碼進行日期計算
::本例為兼容不同的日期格式,調用reg命令(XP系統自帶)統一設置日期格式,
::處理完畢之后再把日期格式恢復成原來的狀態。

 

rem 指定待刪除文件的存放路徑
set SrcDir=C:/Test/BatHome
rem 指定天數
set DaysAgo=1
for /f "skip=2 delims=" %%a in ('reg query "HKEY_CURRENT_USER/Control Panel/International" /v sShortDate') do (
    set "RegDateOld=%%a"
)
set RegDateOld=%RegDateOld:~-8%
reg add "HKEY_CURRENT_USER/Control Panel/International" /v sShortDate /t REG_SZ /d yyyy-M-d /f>nul
>"%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 FmtDate
for /f %%a in ('cscript /nologo "%temp%/DstDate.vbs"') do (
    set "DstDate=%%a"
)
set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%
for /r "%SrcDir%" %%a in (*.*) do (
    if "%%~ta" leq "%DstDate%" (
        if exist "%%a" (
            echo del /f /q "%%a"
        )
    )
)
reg add "HKEY_CURRENT_USER/Control Panel/International" /v sShortDate /t REG_SZ /d %RegDateOld% /f>nul
pause

 

【方案二】刪除指定路徑下指定天數之前(以文件的最后修改日期為準)的文件:BAT + REG + Ritchie Lawrence 日期函數

 

復制代碼 代碼如下:

@echo off
::演示:刪除指定路徑下指定天數之前(以文件的最后修改日期為準)的文件。
::如果演示結果無誤,把del前面的echo去掉,即可實現真正刪除。
::本例調用了 Ritchie Lawrence 的日期函數進行日期計算
::日期轉換的核心算法請參考http://bbs.bathome.cn/thread-3056-1-1.html
::本例為兼容不同的日期格式,調用reg命令(XP系統自帶)統一設置日期格式,
::處理完畢之后再把日期格式恢復成原來的狀態。

 

rem 指定待刪除文件的存放路徑
set SrcDir=C:/Test/BatHome
rem 指定天數
set DaysAgo=1
for /f "skip=2 delims=" %%a in ('reg query "HKEY_CURRENT_USER/Control Panel/International" /v sShortDate') do (
    set "RegDateOld=%%a"
)
set RegDateOld=%RegDateOld:~-8%
reg add "HKEY_CURRENT_USER/Control Panel/International" /v sShortDate /t REG_SZ /d yyyy-M-d /f>nul
call :DateToDays %date:~0,4% %date:~5,2% %date:~8,2% PassDays
reg add "HKEY_CURRENT_USER/Control Panel/International" /v sShortDate /t REG_SZ /d %RegDateOld% /f>nul
set /a PassDays-=%DaysAgo%
call :DaysToDate %PassDays% DstYear DstMonth DstDay
set DstDate=%DstYear%-%DstMonth%-%DstDay%
for /r "%SrcDir%" %%a in (*.*) do (
    if "%%~ta" leq "%DstDate%" (
        if exist "%%a" (
            echo del /f /q "%%a"
        )
    )
)
reg add "HKEY_CURRENT_USER/Control Panel/International" /v sShortDate /t REG_SZ /d %RegDateOld% /f>nul
pause
goto :eof

:DateToDays %yy% %mm% %dd% days
setlocal ENABLEEXTENSIONS
set yy=%1&set mm=%2&set dd=%3
if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
endlocal&set %4=%j%&goto :EOF

:DaysToDate %days% yy mm dd
setlocal ENABLEEXTENSIONS
set /a a=%1+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
(if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)
endlocal&set %2=%yy%&set %3=%mm%&set %4=%dd%&goto :EOF

 

【方案三】刪除指定路徑下指定天數之前(以文件的最后修改日期為準)的文件:BAT + VBS

 

復制代碼 代碼如下:

@echo off
::演示:刪除指定路徑下指定天數之前(以文件的最后修改日期為準)的文件。
::如果演示結果無誤,把del前面的echo去掉,即可實現真正刪除。
::本例調用了臨時VBS代碼進行日期計算,并統一設置系統日期格式,處理完畢
::之后再把日期格式恢復成原來的狀態。擺脫了對reg命令(XP系統自帶)的依賴。

 

rem 指定待刪除文件的存放路徑
set SrcDir=C:/Test/BatHome
rem 指定天數
set DaysAgo=1
>"%temp%/BackupDate.vbs" echo Set WshShell = WScript.CreateObject("WScript.Shell")
>>"%temp%/BackupDate.vbs" echo WScript.Echo WshShell.RegRead ("HKEY_CURRENT_USER/Control Panel/International/sShortDate")
for /f %%a in ('cscript /nologo "%temp%/BackupDate.vbs"') do (
    set "RegDateOld=%%a"
)
>"%temp%/UnifyDate.vbs" echo Set WshShell = WScript.CreateObject("WScript.Shell")
>>"%temp%/UnifyDate.vbs" echo WshShell.RegWrite "HKEY_CURRENT_USER/Control Panel/International/sShortDate", "yyyy-M-d", "REG_SZ"
cscript /nologo "%temp%/UnifyDate.vbs"
>"%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 FmtDate
for /f %%a in ('cscript /nologo "%temp%/DstDate.vbs"') do (
    set "DstDate=%%a"
)
set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%
for /r "%SrcDir%" %%a in (*.*) do (
    if "%%~ta" leq "%DstDate%" (
        if exist "%%a" (
            echo del /f /q "%%a"
        )
    )
)
>"%temp%/RecoverDate.vbs" echo Set WshShell = WScript.CreateObject("WScript.Shell")
>>"%temp%/RecoverDate.vbs" echo WshShell.RegWrite "HKEY_CURRENT_USER/Control Panel/International/sShortDate", "%RegDateOld%", "REG_SZ"
cscript /nologo "%temp%/RecoverDate.vbs"
pause

 

【方案四】刪除指定路徑下指定天數之前(以文件的創建日期為準)的文件:BAT + REG + Ritchie Lawrence 日期函數

 

復制代碼 代碼如下:

@echo off
::演示:刪除指定路徑下指定天數之前(以文件的創建日期為準)的文件。
::如果演示結果無誤,把del前面的echo去掉,即可實現真正刪除。
::本例調用了 Ritchie Lawrence 的日期函數進行日期計算
::日期轉換的核心算法請參考http://bbs.bathome.cn/thread-3056-1-1.html
::本例為兼容不同的日期格式,調用reg命令(XP系統自帶)統一設置日期格式,
::處理完畢之后再把日期格式恢復成原來的狀態。

 

rem 指定待刪除文件的存放路徑
set SrcDir=C:/Test/BatHome
rem 指定天數
set DaysAgo=1
for /f "skip=2 delims=" %%a in ('reg query "HKEY_CURRENT_USER/Control Panel/International" /v sShortDate') do (
    set "RegDateOld=%%a"
)
set RegDateOld=%RegDateOld:~-8%
reg add "HKEY_CURRENT_USER/Control Panel/International" /v sShortDate /t REG_SZ /d yyyy-M-d /f>nul
call :DateToDays %date:~0,4% %date:~5,2% %date:~8,2% PassDays
reg add "HKEY_CURRENT_USER/Control Panel/International" /v sShortDate /t REG_SZ /d %RegDateOld% /f>nul
set /a PassDays-=%DaysAgo%
call :DaysToDate %PassDays% DstYear DstMonth DstDay
set DstDate=%DstYear%-%DstMonth%-%DstDay%

for /f "delims=/" %%a in ('dir /s /b /a-d "%SrcDir%"') do (
    call :CompareTime "%%a"
)
reg add "HKEY_CURRENT_USER/Control Panel/International" /v sShortDate /t REG_SZ /d %RegDateOld% /f>nul
pause
goto :eof

:DateToDays %yy% %mm% %dd% days
setlocal ENABLEEXTENSIONS
set yy=%1&set mm=%2&set dd=%3
if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
endlocal&set %4=%j%&goto :EOF

:DaysToDate %days% yy mm dd
setlocal ENABLEEXTENSIONS
set /a a=%1+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
(if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)
endlocal&set %2=%yy%&set %3=%mm%&set %4=%dd%&goto :EOF

:CompareTime
for /f "skip=5 tokens=1-2 delims= " %%h in ('dir /a-d /tc %1') do (
    if "%%h" leq "%DstDate%" (
        if exist %1 (
            echo del /a /f /q %1
        )
    )
    goto :eof
)

 

【方案五】刪除指定路徑下指定天數之前(以文件的修改日期為準)的文件:forfiles

 

復制代碼 代碼如下:

@echo off
::演示:刪除指定路徑下指定天數之前(以文件的最后修改日期為準)的文件。
::如果演示結果無誤,把del前面的echo去掉,即可實現真正刪除。
::本例需要Win2003/Vista/Win7系統自帶的forfiles命令的支持

 

rem 指定待刪除文件的存放路徑
set SrcDir=C:/Test/BatHome
rem 指定天數
set DaysAgo=1

forfiles /p %SrcDir% /s /m *.* /d -%DaysAgo% /c "cmd /c echo del /f /q /a @path"
pause

 

【方案六】刪除指定路徑下指定天數之前(以文件名中包含的日期字符串為準)的文件:字符串截取

 

復制代碼 代碼如下:

@echo off
::演示:刪除指定路徑下指定天數之前(以文件名中包含的日期字符串為準)的文件。
::如果演示結果無誤,把del前面的echo去掉,即可實現真正刪除。
::本例假設文件名中包含的日期字符串(比如:bak-2009-12-25.log)

 

rem 指定待刪除文件的存放路徑
set SrcDir=C:/Test/BatHome
rem 指定天數
set DaysAgo=1

>"%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 FmtDate
for /f %%a in ('cscript /nologo "%temp%/DstDate.vbs"') do (
  set "DstDate=%%a"
)
set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%

setlocal enabledelayedexpansion
for /r "%SrcDir%" %%a in (*.*) do (
    set "FileDate=%%~na"
    set "FileDate=!FileDate:~4,10!"
    if "!FileDate!" leq "%DstDate%" (
        if exist "%%a" (
            echo del /f /q "%%a"
        )
    )
)
endlocal
pause

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕亚洲无线码a| 日韩中文字幕不卡视频| 97久久精品人搡人人玩| 亚洲电影免费观看高清完整版| 久久成人一区二区| 亚洲国产古装精品网站| 中文欧美在线视频| 中文字幕日韩精品有码视频| 麻豆国产va免费精品高清在线| 欧美放荡办公室videos4k| 国产精品久久二区| 国产欧美日韩丝袜精品一区| 日韩在线观看免费高清完整版| 国产69精品久久久| 亚洲精品欧美一区二区三区| 91亚洲国产成人精品性色| 2019中文字幕在线| 成人欧美在线视频| 久久99亚洲精品| 亚洲毛片在线看| 国产91精品网站| 欧美极度另类性三渗透| 538国产精品一区二区在线| 午夜精品一区二区三区在线播放| 久久久久久国产精品久久| 91精品国产色综合| 亚洲一区二区福利| 亚洲欧美成人精品| 欧美日韩一区二区在线播放| 亚洲欧美中文字幕在线一区| 日韩av电影手机在线观看| 精品国产91久久久| 欧美日韩精品在线观看| 欧美大全免费观看电视剧大泉洋| 欧美性猛交99久久久久99按摩| 久久精品电影网站| 亚洲第一精品电影| 91麻豆国产语对白在线观看| 人人做人人澡人人爽欧美| 在线精品国产欧美| 在线观看亚洲视频| 亚洲第一视频网站| 欧美高清性猛交| 日韩av网站电影| 日韩精品中文字幕视频在线| 国产精品久久激情| 色妞色视频一区二区三区四区| 黑人巨大精品欧美一区免费视频| 亚洲国产成人在线视频| 粗暴蹂躏中文一区二区三区| 欧美精品一本久久男人的天堂| 亚洲第一色中文字幕| 亚洲美女在线视频| 538国产精品一区二区免费视频| 精品久久久久久久久中文字幕| 精品久久久久久中文字幕| 97国产精品视频人人做人人爱| 欧美夫妻性生活xx| 亚洲性无码av在线| 91av在线播放视频| 国模私拍视频一区| 欧美日韩电影在线观看| 欧美噜噜久久久xxx| 欧美猛交免费看| 亚洲激情小视频| 亚洲色图狂野欧美| 大量国产精品视频| 狠狠爱在线视频一区| 亚洲第一网中文字幕| 国产视频亚洲视频| 亚洲国产高清高潮精品美女| 亚洲欧美自拍一区| 亚洲第一免费播放区| 国产精品自拍偷拍| 不卡av在线网站| 久久视频在线看| 亚洲激情第一页| 亚洲va久久久噜噜噜久久天堂| 国产三级精品网站| 亚洲精品ady| 国产成人在线播放| 亚洲欧美一区二区三区在线| 欧美精品videosex性欧美| 久久国产视频网站| 成人av电影天堂| 夜夜嗨av色一区二区不卡| 国产精品人成电影在线观看| 久久久久久成人精品| 亚洲aⅴ日韩av电影在线观看| 日韩欧亚中文在线| 91性高湖久久久久久久久_久久99| 夜夜狂射影院欧美极品| 国产精品极品尤物在线观看| 亚洲日本aⅴ片在线观看香蕉| 日韩av成人在线观看| 国产精品jizz在线观看麻豆| 日韩av快播网址| 国产精品91在线| 色悠悠久久88| 97在线视频一区| 亚洲欧美国产一区二区三区| 亚洲自拍欧美另类| 国产精品专区第二| 亚洲电影第1页| 91国产美女在线观看| 欧美特级www| 国产91网红主播在线观看| 韩国v欧美v日本v亚洲| 亚洲欧美激情在线视频| 欧美日韩综合视频| 日韩欧美国产黄色| 国产噜噜噜噜久久久久久久久| 欧美成人精品在线| 久久久电影免费观看完整版| 成人a免费视频| 亚洲一区二区日本| 中文字幕亚洲综合久久| 欧美性猛交xxxx黑人猛交| 亚洲精品国产美女| 亚洲成人精品视频在线观看| 欧美交受高潮1| 国产精品揄拍一区二区| 亚洲成成品网站| www国产91| 久久影院资源网| 精品国产美女在线| 欧美成人免费网| 久久中文精品视频| 国产精品久久久久久久7电影| 亚洲成人av在线播放| 精品视频偷偷看在线观看| 波霸ol色综合久久| 欧美成人精品在线观看| 亚洲精品av在线播放| 国产免费观看久久黄| 九九精品视频在线| 日韩欧美在线第一页| 日韩电影大片中文字幕| 97视频在线观看播放| 欧美激情精品久久久久久黑人| 久久这里只有精品99| 日韩免费观看av| 精品视频在线播放免| 亚洲欧洲日本专区| 久久精品视频在线观看| 中文字幕在线视频日韩| 91亚洲精品视频| 亚洲综合社区网| 这里只有精品在线观看| 成人精品视频久久久久| 国产免费亚洲高清| 亚洲视频电影图片偷拍一区| 国语对白做受69| 国产成人自拍视频在线观看| 97久久精品人搡人人玩| 亚洲欧美日韩精品久久奇米色影视| 国产精品久久久久国产a级| 日韩不卡在线观看| 中文字幕av一区中文字幕天堂| 日本午夜在线亚洲.国产| 国产精品激情自拍| 亚洲一区二区在线播放| 色狠狠久久aa北条麻妃| 国产精品视频内|