@echo off&SETLOCAL ENABLEDELAYEDEXPANSION
::设置要检查的文件夹路径为变量han,路径最后面不要有\
set han=D:\bak
::请确认日期格式是否如示例2009-06-22 星期一
echo %date%
pause
::判断日期是否小于10
if "%date:~8,2%" LSS "10" (set gu=%date:~9,1%) else set gu=%date:~8,2%
::获取文件夹名
for /l %%i in (1 1 %gu%) do (
set /a ye=%%i-1
set ye=0!ye!
rmdir "!han!\!ye:~-2!" /s /q>nul 2>nul
)
既然按日期生成文件夹名,那么就不会有00这个日期。你说有了,就按有的写吧。。。
这个批处理中有3个注意的问题:
1,因为由for /l得到的数字中,1到9是1位的,10到31是两位,为了得到01-09,10-31,需要将for /l后的数字前面加0,然后截取后两位,即得到01-31。
2,以为在for /l的终止数字中,不能使用0开头的数字,例如for /l %%i in (1 1 09) do (。。。
而直接截取%date%变量,得到的数字可能前面带0,所以必须使用if进行判断,根据不同的情况进行截取。
3,日期变量的截取是根据如示例2009-06-22 星期一的%date%进行截取的
Last edited by Hanyeguxing on 2009-6-22 at 11:39 ]