【问题标题】:Delete folders with wild cards from a batch file Windows 7从批处理文件中删除带有通配符的文件夹 Windows 7
【发布时间】:2011-06-21 17:03:02
【问题描述】:
  1. 我知道我们可以编写程序来做到这一点。
  2. 我知道我们可以编写其他脚本(perl/vbscript/ 等)来执行此操作。

我正在寻找一个命令提示符/批处理文件解决方案来删除所有要删除的与 sub_* 匹配的文件夹(如 sub_1、sub_2 ...)。 rmdir 或 rd 不支持通配符,我无法弄清楚如何将 dir sub_*/ad 命令的输出一一通过管道传送到 delete 命令也是。我可以使用任何循环语法等吗?

【问题讨论】:

    标签: batch-file command command-prompt


    【解决方案1】:
    for /d %x in (sub_*) do rd /s /q "%x"
    

    如果在批处理文件中使用,您需要将% 加倍:

    for /d %%x in (sub_*) do rd /s /q "%%x"
    

    未经测试,请务必先使用echo 或其他不会立即擦除目录的东西;)

    【讨论】:

    • 是的!完美运行!我看到有些人在 for 循环中对文件使用 %%f,但我不知道该对目录使用什么。我们从哪里查看此类信息?
    • @Piyush:变量名并不重要。 /D 告诉 for 查找目录。
    • 啊...现在我知道了...谢谢!
    【解决方案2】:

    forfiles /P C:\where\my\dirs\at /M sub_* /C "cmd /c if @isdir==TRUE rmdir /s /q @file"

    【讨论】: