1,因为下面没有!!括的变量,所以setlocal enabledelayedexpansion没有必要
2,相对于'date /t',推荐直接使用"%date%"
3,因为楼主使用了%lodpatch:~0,8%,那么说明文件夹名必须前8位型如20101207,如果型如2010127这样就会出错。
4,因为在第二个for中没指定分隔符,所以文件夹名中不能有空格!
5,findstr "^*$,这里的*是重复的意思,通配为.,所以按照这个命令过滤出的文件夹名只能由0-9和_11个字符构成,其他的都会被排除。
但楼主说“因为文件夹会有其他后缀”那么就是文件夹名中还有.或其他字符等,那么几乎就不会有文件夹剩下来了。楼主可以用这个代码测试就知道了:
setlocal enabledelayedexpansion
for /f "tokens=1-3 delims=- " %%a in ('date /t') do set nowdate=%%a%%b%%c
for /f %%a in ('dir d:\adupdate /a:d /b /o:d^|findstr "^*$"') do (
echo 测试%%a
)
pause
看显示几个文件夹