我试图通过使用管道
将进程的输出传递给for循环type %1% | findstr /R /V "Test" | for /F "tokens=*" %%i IN ('more') DO @echo %%i
但我不知道该替换什么('more')以便它从findstr命令读取输出。这甚至可能吗?或者我是否必须将输出保存到文件中,然后在完全不同的批处理程序中读取文件?请帮忙。
答案 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