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

首頁 > 編程 > BAT > 正文

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

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

【方案一】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
久久久亚洲网站| 欧美极品xxxx| 欧美极品少妇xxxxⅹ喷水| 精品夜色国产国偷在线| 亚洲精品美女在线观看播放| 精品国产乱码久久久久久虫虫漫画| 性欧美亚洲xxxx乳在线观看| 亚洲国产精品va在线看黑人| 国产a∨精品一区二区三区不卡| 日韩经典中文字幕在线观看| 国产偷亚洲偷欧美偷精品| 久久精品99国产精品酒店日本| 日韩精品久久久久久久玫瑰园| 国产精品久久久久影院日本| 国产精品久久久久久久久久久不卡| 欧美午夜精品久久久久久人妖| 国产精品国产三级国产aⅴ浪潮| 国产精品丝袜一区二区三区| 亚洲综合在线小说| 亚洲视频免费一区| 国产伦精品一区二区三区精品视频| 91精品国产高清久久久久久久久| 欧美另类在线播放| 在线成人免费网站| 亚洲第一国产精品| 国产成人精品一区二区| 日韩视频欧美视频| 色多多国产成人永久免费网站| 久久久久久久一区二区三区| 欧美激情一级精品国产| 日韩美女av在线免费观看| 欧美成人午夜视频| 亚洲色图偷窥自拍| 欧美高跟鞋交xxxxhd| 亚洲一区中文字幕在线观看| 日韩电影大片中文字幕| 亚洲影视中文字幕| 亚洲男人天堂网站| 成人激情视频免费在线| 久久人人97超碰精品888| 九九热视频这里只有精品| 久久久国产精彩视频美女艺术照福利| 欧美乱人伦中文字幕在线| 国产精品极品在线| 色偷偷88888欧美精品久久久| 97视频在线观看播放| 欧美与黑人午夜性猛交久久久| 国产一区视频在线| 久久97精品久久久久久久不卡| 日韩精品免费在线视频观看| 国产精品视频午夜| 777精品视频| 国产aⅴ夜夜欢一区二区三区| 97碰在线观看| 亚洲最大成人免费视频| 欧美日韩国产二区| 日韩在线观看网址| 久久视频精品在线| 欧美精品成人91久久久久久久| 亚洲另类欧美自拍| 成人h视频在线观看播放| 国产+人+亚洲| 日韩av免费看| 欧美精品激情blacked18| 2020久久国产精品| 国产乱肥老妇国产一区二| 91视频免费网站| 国产精品999999| 国产成人a亚洲精品| 另类天堂视频在线观看| 久久久久久久久久久免费精品| 精品美女久久久久久免费| 国产精品视频区| 亚洲国产小视频| 福利一区福利二区微拍刺激| 狠狠色狠狠色综合日日五| 粉嫩av一区二区三区免费野| 亚洲xxxxx| 国产精品一区二区三区久久| 欧美福利小视频| 成人av.网址在线网站| 亚洲人成绝费网站色www| 亚洲精品一区在线观看香蕉| 亚洲国产精彩中文乱码av| 国产精品久久久久9999| 欧美高清自拍一区| 福利二区91精品bt7086| 国产99久久精品一区二区永久免费| 成人xxxx视频| 日韩精品免费在线播放| 亚洲国产天堂久久国产91| 亚洲国产另类久久精品| 亚洲精品女av网站| 日韩精品在线第一页| 中文国产成人精品久久一| 欧美大尺度激情区在线播放| 红桃视频成人在线观看| 8x拔播拔播x8国产精品| 久久99精品久久久久久琪琪| 视频一区视频二区国产精品| 久久国产精品网站| 国产精品夜色7777狼人| 亚洲专区中文字幕| 国产精品自拍小视频| 国内精品中文字幕| 亚洲国产精品va在看黑人| 国产精品久久久久9999| 欧美日韩精品在线观看| 亚洲小视频在线观看| 国产区亚洲区欧美区| 在线日韩av观看| 日韩精品视频观看| 久久久久久久久久国产精品| 国产精品一区二区三区毛片淫片| 日韩精品中文字幕在线播放| 2019日本中文字幕| 日本三级久久久| 亚洲综合精品伊人久久| 精品久久香蕉国产线看观看gif| 日韩久久午夜影院| 国产中文字幕日韩| 亚洲免费影视第一页| 亚洲japanese制服美女| 欧美中文字幕在线视频| 国模精品系列视频| 伊人久久大香线蕉av一区二区| 欧美日韩不卡合集视频| 日韩在线观看av| 欧美黑人视频一区| 成人有码视频在线播放| 日韩福利视频在线观看| 国产精品高潮呻吟久久av黑人| 亚洲精品国产精品国自产观看浪潮| 国产精品电影网站| 亚洲风情亚aⅴ在线发布| 欧美成人免费网| 91精品国产色综合久久不卡98口| 国产欧美一区二区三区视频| 欧美成人在线影院| 26uuu国产精品视频| www.xxxx欧美| 狠狠色噜噜狠狠狠狠97| 黑人巨大精品欧美一区免费视频| 日韩经典一区二区三区| 岛国视频午夜一区免费在线观看| 亚洲国产精品va在看黑人| 国产精品视频久久久久| 午夜精品在线观看| 国产精品www色诱视频| 亚洲跨种族黑人xxx| 国产精品久久久久久久久久久久久| 精品一区二区三区四区| 欧美俄罗斯乱妇| 国产在线观看不卡| 中文字幕亚洲一区二区三区| 精品国产31久久久久久| 一区二区三区四区精品| 亚洲字幕在线观看| 日韩成人av在线播放| 亚洲精品97久久| 亚洲欧美日韩另类| 97超碰色婷婷| 色阁综合伊人av| 欧美精品制服第一页|