9 我正在为Windows命令提示符编写批处理文件,以删除与某个表达式匹配的所有目录。 我首先使用它DIR来返回与表达式匹配的目录的简单列表。我想将输出的每一行通过管道传递到RMDIR命令,如下所示: DIR *.delete /A:D /B /S | RMDIR /S /Q 但是上述命令似乎不起作用。我不完全理解为什么这行不通,并且感谢任何能够提供解释的人。 windows command-line batch pipe dir — 用户名 source
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逐个发送。 — 加夫 source