我在Windows上使用grep来过滤文件,并希望将输出传递给另一个批处理脚本.
例如
grep "foo" bar.txt | mybatch.bat
Run Code Online (Sandbox Code Playgroud)
在mybatch我想处理每个匹配的行
例如mybatch.bat:
echo Line with foo: %1
Run Code Online (Sandbox Code Playgroud)
在linux上我可以解决这个问题
grep "foo" bar.txt | while read x; do mybatch.sh $x; done
Run Code Online (Sandbox Code Playgroud)
但不知道我怎么能在Windows机器上做到这一点.
提前致谢!
你可以使用for:
for /f %x in ('grep "foo" bar.txt') do call mybatch.cmd "%x"
Run Code Online (Sandbox Code Playgroud)
这将为每个非空行调用一次批处理文件,就像shell脚本示例一样.