从批处理文件中使用通配符删除文件夹,Windows 7

9
  1. 我知道我们可以编写程序来完成此操作。
  2. 我知道我们可以编写其他脚本(perl / vbscript /等)来完成此操作。

我正在寻找一个命令提示符/批处理文件解决方案,以删除所有匹配sub_*(如sub_1,sub_2 ...)的文件夹。rmdir或rd不支持通配符,并且我无法想出如何将dir sub_*/ ad命令的输出逐个传输到delete命令中。有什么循环语法等我可以使用吗?

2个回答

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

如果用于批处理文件,你需要将 % 值加倍:

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

未经测试,请务必先使用echo或其他不会立即清空目录的方法进行操作;)


2
是的!完美地运行了!我看到有些人在for循环中使用%%f来处理文件,但我不知道如何处理目录。我们应该从哪里查找这种信息? - Piyush Soni
@Piyush:变量名并不重要。/D 告诉 for 查找目录。 - Joey
啊...现在我知道了...谢谢! - Piyush Soni

1

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接