我想删除所有只有数字名称的文件夹。所以我使用正则表达式编写了一个批处理文件:
@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
但它不起作用。错误在哪里?
我想删除所有只有数字名称的文件夹。所以我使用正则表达式编写了一个批处理文件:
@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
但它不起作用。错误在哪里?
@ECHO OFF
SETLOCAL
FOR /f %%x IN (
'dir /ad /b * ^|FINDSTR "^[0-9]*$" '
) DO ECHO %%x
FOR /F
从文件/命令输出读取行到元变量。
for /d
只需将目录名应用于元变量。
试试这个:
@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
)