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

首頁 > 編程 > BAT > 正文

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

2020-07-26 20:14:23
字體:
來源:轉載
供稿:網友

【方案一】BAT + REG + VBS

復制代碼 代碼如下:

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

rem 指定待刪除文件夾的存放路徑
set SrcDir=C:/Test
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 /d    %%a in ("%SrcDir%/*.*") do (
    if "%%~ta" leq "%DstDate%" (
        if exist "%%a/"
            echo rd /s /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
::演示:刪除指定路徑下指定天數之前(以文件夾的最后修改日期為準)的文件夾。
::如果演示結果無誤,把rd前面的echo去掉,即可實現真正刪除。
::本例調用了 Ritchie Lawrence 的日期函數進行日期計算
::日期轉換的核心算法請參考http://bbs.bathome.cn/thread-3056-1-1.html
::本例為兼容不同的日期格式,調用reg命令(XP系統自帶)統一設置日期格式,
::處理完畢之后再把日期格式恢復成原來的狀態。

rem 指定待刪除文件夾的存放路徑
set SrcDir=C:/Test
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%
set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%
for /d    %%a in ("%SrcDir%/*.*") do (
    if "%%~ta" leq "%DstDate%" (
        if exist "%%a/"
            echo rd /s /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
::演示:刪除指定路徑下指定天數之前(以文件夾的最后修改日期為準)的文件夾。
::如果演示結果無誤,把rd前面的echo去掉,即可實現真正刪除。
::本例調用了臨時VBS代碼進行日期計算,并統一設置系統日期格式,處理完畢
::之后再把日期格式恢復成原來的狀態。擺脫了對reg命令(XP系統自帶)的依賴。

rem 指定待刪除文件夾的存放路徑
set SrcDir=C:/test
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 /d    %%a in ("%SrcDir%/*.*") do (
    if "%%~ta" leq "%DstDate%" (
        if exist "%%a/"
            echo rd /s /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

【方案四】字符串截取

復制代碼 代碼如下:

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

rem 指定待刪除文件夾的存放路徑
set SrcDir=C:/test
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 /d  %%a in ("%SrcDir%/*.*") do (
  if "%%~ta" leq "%DstDate%" (
    set "FolderDate=%%~na"
    set "FolderDate=!FolderDate:~8,10!"
    if "!FolderDate!" leq "%DstDate%" (
        if exist "%%a/" (
            echo rd /s /q "%%a"
        )
    )
  )
)
endlocal
pause

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线亚洲男人天堂| 亚洲欧美在线播放| 亚洲国产成人久久| 亚洲天堂av在线免费| 日韩欧美在线视频观看| 黑人狂躁日本妞一区二区三区| 欧美日韩性生活视频| 国产suv精品一区二区三区88区| 欧美性高跟鞋xxxxhd| 91夜夜揉人人捏人人添红杏| 欧美成人第一页| 一个人看的www久久| 亚洲色图第三页| www.久久草.com| 国产亚洲精品久久久| 午夜精品久久久久久久99热| 日本免费久久高清视频| 精品动漫一区二区| 高清视频欧美一级| 久久99久久99精品免观看粉嫩| 丝袜情趣国产精品| 亚洲精品一区中文字幕乱码| 日韩美女毛茸茸| 国产精品久久色| 欧美日韩在线视频首页| 91福利视频在线观看| 亚洲的天堂在线中文字幕| 欧美激情免费看| 91av在线免费观看视频| 日本精品一区二区三区在线| 92福利视频午夜1000合集在线观看| 日韩免费在线播放| 久久欧美在线电影| 日韩激情视频在线播放| 欧美裸体xxxx极品少妇| 4438全国亚洲精品在线观看视频| 97超级碰碰碰久久久| 一个人看的www久久| 在线观看免费高清视频97| 视频在线观看一区二区| 国产精品三级久久久久久电影| 亚洲free性xxxx护士白浆| 成人黄色av播放免费| 成人av色在线观看| 日本电影亚洲天堂| 亚洲午夜国产成人av电影男同| 日韩电影免费观看在线观看| 亚洲视频在线观看| 国产91色在线|免| 国产精品久久久av| 国产精品a久久久久久| 亚洲精品美女在线| 91免费欧美精品| 91豆花精品一区| 久久综合色影院| 欧美在线视频在线播放完整版免费观看| 欧美国产高跟鞋裸体秀xxxhd| 欧美精品在线免费| 国产精品久久久久久久av大片| 国产精品免费一区二区三区都可以| 国产又爽又黄的激情精品视频| 成人午夜两性视频| 亚洲黄色在线看| 黄色精品一区二区| 91色在线视频| 久久精品91久久久久久再现| 伊人青青综合网站| 一本色道久久88综合日韩精品| 久久久国产一区二区| 成人免费在线视频网址| 91亚洲永久免费精品| 欧美成在线观看| 91情侣偷在线精品国产| 国产精品视频26uuu| 成人精品一区二区三区电影黑人| 欧美最猛性xxxxx亚洲精品| 欧美极品第一页| 日韩成人在线视频观看| 亚洲国产古装精品网站| 中文欧美在线视频| 精品国产成人在线| 久久成年人视频| 一区二区成人av| 国产97色在线|日韩| 丝袜美腿精品国产二区| 国产大片精品免费永久看nba| 欧美一区二三区| 俺去亚洲欧洲欧美日韩| 精品国产依人香蕉在线精品| 日韩欧美视频一区二区三区| 一本色道久久88亚洲综合88| 久久亚洲精品毛片| 亚洲国产毛片完整版| 九色成人免费视频| 国产欧亚日韩视频| 日韩av在线电影网| 久久久久久香蕉网| 97在线视频免费播放| 91精品国产91| 亚洲最新视频在线| 91在线观看免费| 日韩中文字幕免费看| www.国产一区| 97久久精品人人澡人人爽缅北| 亚洲欧美日韩一区二区三区在线| 亚洲а∨天堂久久精品9966| 欧美国产乱视频| 色综合久综合久久综合久鬼88| 久久久精品视频在线观看| 96精品久久久久中文字幕| 欧美成人午夜免费视在线看片| 亚洲国产日韩欧美综合久久| 在线播放国产一区中文字幕剧情欧美| 国产专区欧美专区| 精品成人国产在线观看男人呻吟| 在线精品国产成人综合| 国产精品视频1区| 日韩欧美中文在线| 久久色在线播放| 午夜精品美女自拍福到在线| 国产欧美日韩高清| 高清欧美性猛交xxxx| 国产精品久久久久久久久久新婚| 日本久久久久久| 亚洲欧美福利视频| 亚洲欧洲自拍偷拍| 久热精品视频在线| zzijzzij亚洲日本成熟少妇| 久久精品国产精品| 亚洲人成网站色ww在线| 亚洲美女视频网站| 久久精品国产久精国产一老狼| 欧美成人亚洲成人| 51精品国产黑色丝袜高跟鞋| 日韩在线观看电影| 日韩电影大片中文字幕| 久久69精品久久久久久国产越南| 国产精品视频不卡| 欧美极品少妇xxxxⅹ裸体艺术| 国产综合在线观看视频| 国产精品夜间视频香蕉| 亚洲自拍av在线| 成人网页在线免费观看| 欧美高跟鞋交xxxxhd| 精品人伦一区二区三区蜜桃网站| 国产91网红主播在线观看| 欧美极品美女视频网站在线观看免费| 亚洲最大福利视频网站| 亚洲xxxxx| 国产精自产拍久久久久久蜜| 日韩av在线免费| 最近2019年日本中文免费字幕| 日韩av一区在线| 日韩男女性生活视频| 亚洲天堂网站在线观看视频| 欧美大胆a视频| 日韩欧美在线中文字幕| 欧美大片网站在线观看| 日韩中文字幕网址| 欧美激情亚洲激情| 久久99久久99精品免观看粉嫩| 亚洲成人中文字幕| 国产精品久久久久久久久免费看| 91亚洲午夜在线|