我需要批量删除名称以数字开头的目录(和子目录)列表。
我的树是这样的:
|- root
|--event=aaa
|--photo
|--123
|--44
|--23
|--89
|--otherdir
|--event=bbb
|--photo
|--432
|--67
|--12
|--32
|--otherdir
我找到了这个工作示例:http ://www.dostips.com/forum/viewtopic.php?f=3&t=1496
这就是我写的
@ECHO OFF
SET path=\\mypath
SET dir=\parentDir\
:: loop on event=* folders
FOR /D /R %path%%dir% %%K IN ("*event*") DO (
:: if an event contains photos ..
IF EXIST %%K\photo (
ECHO %%K
:: loop on dir inside photo folder with a numeric name
PUSHD %%K\photo ||goto :eof
FOR /f "delims=" %%a IN ('dir /ad /b /s ^|findstr /rc:"\\[0-9]"') DO (
IF EXIST %%~a (
RD /s /q "%%~a"
)
)
POPD
) ELSE (
ECHO.%%K /photo does not exists
)
)
ECHO.completed
PAUSE
我发现的唯一问题是执行似乎在最后一个 /event=xxx 文件夹时冻结,并且需要很长时间才能 ECHO 最后一行(“完成”)。我不明白为什么..有什么想法吗?
非常感谢