使用两者<和>重定向命令行输出

时间:2015-04-30 20:41:31

标签: batch-file cmd

我的批处理应该使用给定的输入数据在两个程序之间区分输出。您可以想象我正在测试某个任务是否已正确实施:

compareout.bat implementation.exe correct_implementation.exe test_data.txt

程序应该使用测试数据运行命令并比较它们的输出。我可以使用以下命令保存命令输出:

ping 8.8.8.8 /t >pinglog.txt

我可以使用以下方法将文件内容发送到stdin:

implementation.txt < testdata.txt

但我应该如何同时使用这两个运算符?

1 个答案:

答案 0 :(得分:0)

就像使用运算符和参数一样简单。举一个简单的例子:

cat <input.txt >output.txt

当然,只有当您的命令读取STDIN并写入STDOUT时才会真正适用 - 这实际上并不适用于ping

做什么似乎正在运行两个可执行文件并将其输出区分开来。这有点复杂 - 将它们都送到STDOUT很容易。将它们喂给两个独立的STDOUT并将它们分开是更难的。我不确定你可以在Windows平台上 - 使用Linux,我建议将两个不同命令的STDOUT重定向到不同的文件描述符。 (例如,而不是使用STDIN / STDOUT / STDERR创建一组额外的文件描述符)

类似的东西:

diff <(command1) <(command2)