0

我想删除所有只有数字名称的文件夹。所以我使用正则表达式编写了一个批处理文件:

@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

但它不起作用。错误在哪里?

4

2 回答 2

0
@ECHO OFF
SETLOCAL
FOR /f %%x IN (
 'dir /ad /b * ^|FINDSTR "^[0-9]*$" '
 ) DO ECHO %%x

FOR /F从文件/命令输出读取行到元变量。

for /d只需将目录名应用于元变量。

于 2013-03-22T08:25:08.900 回答
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)
于 2013-03-22T08:46:04.037 回答