从批处理文件中删除带有通配符的文件夹 Windows 7

Posted

技术标签:

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

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

【问题讨论】:

【参考方案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"

【讨论】:

以上是关于从批处理文件中删除带有通配符的文件夹 Windows 7的主要内容,如果未能解决你的问题,请参考以下文章

仅去除带有通配符排除的二进制文件的函数名称

批处理命令通过通配符名称获取最新文件

用于从 CSV 中删除带有特定单词的行的批处理文件

带有通配符的Hadoop HDFS副本?

bat删除当前目录指定后缀的文件夹?

使用通配符路径重命名文件