将批处理文件的输出传递给for循环

时间:2013-08-27 18:57:11

标签: for-loop input batch-file output readline

我试图通过使用管道

将进程的输出传递给for循环
type %1% | findstr /R /V "Test" | for /F "tokens=*" %%i IN ('more') DO @echo %%i

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

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

for /f "delims=" %%a in ('findstr /rv "Test" "%1%" ^| more') do echo %%a