是否可以将文件列表通过管道传输到Windows上的RMDIR?


9

我正在为Windows命令提示符编写批处理文件,以删除与某个表达式匹配的所有目录。

我首先使用它DIR来返回与表达式匹配的目录的简单列表。我想将输出的每一行通过管道传递到RMDIR命令,如下所示:

DIR *.delete /A:D /B /S | RMDIR /S /Q

但是上述命令似乎不起作用。我不完全理解为什么这行不通,并且感谢任何能够提供解释的人。

Answers:


5

您可以在批处理文件中使用以下内容:

FOR /f "tokens=*" %%a in ('dir *.delete /A:D /B /S') DO RMDIR /S /Q %%a

它使用该FOR命令遍历给定命令的输出(在这种情况下dir *.delete /A:D /B /S,对于返回的每个项目,它将运行用DO语句指定的命令RMDIR /S /Q。该项目由变量引用%%a

它不能简单地通过管道将DIR输出插入其中RMDIR的原因是因为您一次将全部输出(多行)作为单个参数发送到RMDIR。该FOR命令分解此输出,遍历每个项目,然后将其RMDIR逐个发送。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.