seechbakup.bat:
for /f %%i in ('cscript /nologo yesterday.vbs') do set d=%%i
md %d%
xcopy /y /e /d "Z:\*" "D:\个人重要资料(勿删)\Administrator\桌面\secch\%d%\"
for /f %%i in ('cscript /nologo last.vbs') do set l=%%i
for /f "delims=" %%i in ('dir /s/b/ad %l%*') do (rd /s/q "%%~i")
改为
seechbakup.bat:
for /f %%i in ('cscript /nologo yesterday.vbs') do set d=%%i
for /f %%i in ('cscript /nologo last.vbs') do set l=%%i
for /f "delims=" %%i in ('dir /s/b/ad %l%*') do (rd /s/q "%%~i")
md %d%
xcopy /y /e /d "Z:\*" "D:\个人重要资料(勿删)\Administrator\桌面\secch\%d%\"
运行结果就不会报错了;
因为 for rd 最后是没有结果的,所以 0X1 0X2找不到目录删除;
这样会有问题,如果是月1号,是不是上个月的就全删除了?那么只剩一天的备份?
优化 每次只删除31天前的:
last.vbs
l = DateAdd("d",-31,now())
wscript.echo DatePart("yyyy",l) & Right("0" & DatePart("m",l), 2) & Right("0" & DatePart("d",l),2)
seechbakup.bat:
for /f %%i in ('cscript /nologo yesterday.vbs') do set d=%%i
rd /s /q “D:\个人重要资料(勿删)\Administrator\桌面\secch\%l%\”
for /f %%i in ('cscript /nologo last.vbs') do set l=%%i
md %d%
xcopy /y /e /d "Z:\*" "D:\个人重要资料(勿删)\Administrator\桌面\secch\%d%\"