如何在一行中输出两个回声?

时间:2017-08-19 09:17:51

标签: cmd

在DOS命令提示符下:

echo b | echo a

结果显示a,但不显示b。为什么?如何在一行中输入2 echo

我的总体目标是从Haskell程序启动多个进程,并查看每个进程的开始和结束时间。我会发出如下命令:

echo start | myprogram | echo end

2 个答案:

答案 0 :(得分:2)

请参阅Command Shell Overview文章,了解如何在一行中运行多个命令。有一节使用多个命令和条件处理符号

  

command1 & command2

     

用于在一个命令行上分隔多个命令。 Cmd.exe运行第一个命令,然后运行第二个命令。

     

command1 && command2

     

使用以下命令运行&&只有符号前面的命令成功*。 Cmd.exe运行第一个命令,然后仅在第一个命令成功完成时运行第二个命令*。

     

*)如果命令成功完成操作,则返回退出代码零(0)或无退出代码。

     

[引用作者回答]

......和其他几个人。

管道(将命令的输出重定向到另一个命令的输入)在这里不是解决方案,只需执行如上所示的串行执行。

等等,还有更多:)

如果要将输出重定向到例如日志,通常会执行以下操作:

echo a > out.txt & echo b >> out.txt & echo c >> out.txt

但是有一个简写,使用上面文章中提到的括号:

(echo a & echo b & echo c) > out.txt

或等效(使用长命令更易读)

 > out.txt (echo a & echo b & echo c)

正如您所看到的,这使您免于>>>的组合,这通常是检查命令的另一件事。

答案 1 :(得分:0)

正如Stephan建议的那样,我将使用:

echo start & myprogram & echo end