use*_*755 10 windows batch command-line dir pipe
我正在为 Windows 命令提示符编写一个批处理文件,以删除与某个表达式匹配的所有目录。
我首先使用DIR返回匹配表达式的普通目录列表。我想将每一行输出通过管道传输到 RMDIR 命令中,如下所示:
DIR *.delete /A:D /B /S | RMDIR /S /Q
Run Code Online (Sandbox Code Playgroud)
但是上面的命令似乎不起作用。我不完全理解为什么这不起作用,并且会感谢任何可以提供解释的人。
您可以在批处理文件中使用以下内容:
FOR /f "tokens=*" %%a in ('dir *.delete /A:D /B /S') DO RMDIR /S /Q %%a
Run Code Online (Sandbox Code Playgroud)
这使用FOR命令循环遍历给定命令的输出(在这种情况下dir *.delete /A:D /B /S,对于返回的每个项目,它将运行 DO 语句指定的命令,RMDIR /S /Q。该项目由变量引用%%a。
它不能简单地将DIR输出通过管道RMDIR传输的原因是因为您将整个输出(多行)作为单个参数一次发送到RMDIR. 该FOR命令分解此输出,遍历每个项目,然后将其RMDIR一一发送。
| 归档时间: |
|
| 查看次数: |
11185 次 |
| 最近记录: |