如何在Windows中使用批处理文件删除包含某些字符串的目录?

时间:2017-05-09 06:44:56

标签: batch-file command-line delete-file

How to delete files containing certain string using batch file in Windows?

我学会了如何批量删除包含某些字符串的文件。我做的是

del *(2)* /f /s

但这并没有删除目录。它只删除文件。

如何批量删除包含某些字符串的目录?

1 个答案:

答案 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:安静模式