某個軟體每天會多次自動建立備份的資料夾,固定放在D:\BACK\路徑下
新建立的資料夾名稱格式是:軟體簡稱-日期-當天第幾次備份 LHT-20190101-1
目前計畫是利用工作排程來執行批次檔,每天開機時自動刪除超過10天的備份資料夾
請問這個批次檔要如何寫?
dt=dateadd("d",-10,date)
yy=year(dt)
mm=Right("0" & Month(dt),2)
dd=Right("0" & Day(dt),2)
wscript.echo "for /d %d in ( LHT-"&yy&mm&dd&"-* ) do echo rmdir /s/q %d"
--- End date-10.vbs ---
----Begin clean-10.bat----
cscript /nologo date-10.vbs > r.bat
call r.bat
del r.bat
--- End clean-10.bat ---
排定 clean-10.bat 即可
lun0147 wrote:
提示 forfiles 指令,應該可以幫助你解決問題。
關於 forfiles,網路爬文都是針對 [檔案時間] 去計算刪除目標 [檔案]
我需要的是 [指定檔案夾的日期格式名稱] 的方式去計算刪除目標 [檔案夾]
如果 forfiles 可以做到,還請大大給予示範一下指令怎麼下
chuway wrote:
----Begin date-10.vbs----
dt=dateadd("d",-10,date)
yy=year(dt)
mm=Right("0" & Month(dt),2)
dd=Right("0" & Day(dt),2)
wscript.echo "for /d %d in ( LHT-"&yy&mm&dd&"-* ) do echo rmdir /s/q %d"
--- End date-10.vbs ---
----Begin clean-10.bat----
cscript /nologo date-10.vbs > r.bat
call r.bat
del r.bat
--- End clean-10.bat ---
排定 clean-10.bat 即可
感謝大大
原來要用VB指令,我在BAT的方式爬文好久...
@echo off
echo wscript.echo dateadd("d",-10,date) > %tmp%\tmp.vbs
for /f "tokens=1,2,3 delims=/- " %%i in ('cscript /nologo %tmp%\tmp.vbs') do set y=%%i
for /f "tokens=1,2,3 delims=/- " %%i in ('cscript /nologo %tmp%\tmp.vbs') do set m=%%j
for /f "tokens=1,2,3 delims=/- " %%i in ('cscript /nologo %tmp%\tmp.vbs') do set d=%%k
if %m% LSS 9 set m=0%m%
if %d% LSS 9 set d=0%d%
set DELETEDATE=%y%%m%%d%
echo %DELETEDATE%
REM 預計要刪除的目錄
SET PATH=C:\LHT-%DELETEDATE%-
REM 刪除存在的目錄
for /l %%i in (1 1 100) do (
if exist %PATH%%%i (
echo %PATH%%%i
rmdir /s/q %PATH%%%i
)
)
內文搜尋




























































































