我想删除所有仅包含数字名称的文件夹。 所以我使用正则表达式编写批处理文件:
@echo off
D:
cd D:\Install\Work
for /d %%i in (*|findstr "^[0-9]*$") do (
rd /s /q %%i
)
echo [all the folders under work are deleted!]
pause
但它不起作用。错误在哪里?
答案 0 :(得分:0)
@ECHO OFF
SETLOCAL
FOR /f %%x IN (
'dir /ad /b * ^|FINDSTR "^[0-9]*$" '
) DO ECHO %%x
FOR /F
从文件/命令输出中读取行到元变量。
for /d
只是将dirnames应用于元变量。
答案 1 :(得分:0)
试试这个:
@echo off
for /r D:\Install\Work %%d in (.) do (
echo %%~nxd|findstr "^[0-9]*$" >nul && rd /s /q "%%~fd"
)
请注意,这将删除全数字文件夹,即使它们包含名称不仅包含数字的其他文件夹!
%%~nxd
:从%%d
~
移除附加双引号,并展开名称(n
)和扩展名(x
)>nul
:抑制STDOUT上的输出%%~fd
:从%%d
(~
)中移除附加双引号并展开完整路径(f
)