我的批处理应该使用给定的输入数据在两个程序之间区分输出。您可以想象我正在测试某个任务是否已正确实施:
compareout.bat implementation.exe correct_implementation.exe test_data.txt
程序应该使用测试数据运行命令并比较它们的输出。我可以使用以下命令保存命令输出:
ping 8.8.8.8 /t >pinglog.txt
我可以使用以下方法将文件内容发送到stdin:
implementation.txt < testdata.txt
但我应该如何同时使用这两个运算符?
答案 0 :(得分:0)
就像使用运算符和参数一样简单。举一个简单的例子:
cat <input.txt >output.txt
当然,只有当您的命令读取STDIN
并写入STDOUT
时才会真正适用 - 这实际上并不适用于ping
。
但你做什么似乎正在运行两个可执行文件并将其输出区分开来。这有点复杂 - 将它们都送到STDOUT
很容易。将它们喂给两个独立的STDOUT
并将它们分开是更难的。我不确定你可以在Windows平台上 - 使用Linux,我建议将两个不同命令的STDOUT
重定向到不同的文件描述符。 (例如,而不是使用STDIN
/ STDOUT
/ STDERR
创建一组额外的文件描述符)
类似的东西:
diff <(command1) <(command2)