国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > BAT > 正文

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

2020-06-09 14:25:09
字體:
供稿:網(wǎng)友

【方案一】BAT + REG + VBS

復(fù)制代碼 代碼如下:

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

rem 指定待刪除文件夾的存放路徑
set SrcDir=C:/Test
rem 指定天數(shù)
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 日期函數(shù)

復(fù)制代碼 代碼如下:

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

rem 指定待刪除文件夾的存放路徑
set SrcDir=C:/Test
rem 指定天數(shù)
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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 乌兰浩特市| 乐清市| 增城市| 延津县| 大化| 新河县| 西畴县| 荥阳市| 阿拉善左旗| 新宾| 华容县| 郓城县| 东台市| 五指山市| 怀来县| 桃源县| 旺苍县| 馆陶县| 仙游县| 文登市| 上饶市| 汝城县| 临江市| 桐柏县| 余庆县| 潮安县| 禹城市| 井陉县| 洱源县| 邹平县| 峨眉山市| 荥阳市| 蒙山县| 黑河市| 湟中县| 深州市| 原平市| 西城区| 海原县| 达孜县| 东海县|