1

我正在尝试使用管道将进程的输出传递到 for 循环中

type %1% | findstr /R /V "Test" | for /F "tokens=*" %%i IN ('more') DO @echo %%i

但我不知道用什么代替 ('more') 以便它读取 findstr 命令的输出。这甚至可能吗?还是我必须将输出保存到文件中,然后在完全不同的批处理程序中读取文件?请帮忙。

4

2 回答 2

1

for循环无法从 中读取STDIN,因此您需要将要处理其输出的命令放入括号中:

for /F "tokens=*" %%i IN ('type %1% ^| findstr /R /V "Test"') DO @echo %%i

请注意,管道必须在子外壳 ( ^|) 中转义。

于 2013-08-27T19:02:12.347 回答
1
for /f "delims=" %%a in ('findstr /rv "Test" "%1%" ^| more') do echo %%a
于 2013-08-27T19:03:52.670 回答