【问题标题】:pass the output of a batch file into a for loop将批处理文件的输出传递到 for 循环
【发布时间】:2013-08-27 18:57:10
【问题描述】:

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

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

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

【问题讨论】:

  • %1%更改为%1或正确处理引号使用"%~1"

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


【解决方案1】:
for /f "delims=" %%a in ('findstr /rv "Test" "%1%" ^| more') do echo %%a

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2023-04-08
      • 2011-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-07
      • 2023-03-27
      相关资源
      最近更新 更多