这
How to delete files containing certain string using batch file in Windows?
我学会了如何批量删除包含某些字符串的文件。我做的是
del *(2)* /f /s
但这并没有删除目录。它只删除文件。
如何批量删除包含某些字符串的目录?
答案 0 :(得分:0)
没有标准的Windows命令可以删除同一级别的文件和目录。 DEL
用于文件,RMDIR
/ RD
用于目录(但它可以删除目录中的文件)。
RMDIR
/ RD
不适用于通配符,因此您需要使用FOR
循环。实际上,下面的代码将打印出命令以删除问题中的目录。如果您确信删除操作符合您的要求,请删除ECHO
。
@ECHO OFF
FOR /F "tokens=*" %%G IN ('DIR /B /AD /S "*(2)*"') DO (
ECHO RMDIR /S /Q "%%G"
)
您也可以将其减少为单行...
FOR /F "tokens=*" %%G IN ('DIR /B /AD /S "*(2)*"') DO ECHO RMDIR /S /Q "%%G"
...如果你想直接在shell中执行它(而不是从.bat
文件),请执行:
FOR /F "tokens=*" %G IN ('DIR /B /AD /S "*(2)*"') DO ECHO RMDIR /S /Q "%G"
标志说明:
FOR
/F
:迭代文件集DIR
/B
:裸格式(需要这样才能使用FOR
)/AD
:过滤目录/S
:work recursive RMDIR
/S
:work recursive /Q
:安静模式