将多个命令的输出重定向到单个文件

时间:2013-09-26 06:37:05

标签: linux windows batch-file

我是Windows批处理脚本的新手,这可能是一个愚蠢的问题。 我正在运行以下批处理文件:“traffic.bat”

start /B netperf.exe -H HOST IP >> file.txt
start /B netperf.exe -H HOST IP >> file.txt
start /B netperf.exe -H HOST IP >> file.txt
...

第一个命令工作正常但是对于进一步的命令,我收到以下错误: “进程无法访问该文件,因为它正被另一个进程使用”

我在linux上知道这很好用:“traffic.sh”

netperf.exe -H HOST IP >> file.txt &
netperf.exe -H HOST IP >> file.txt &
netperf.exe -H HOST IP >> file.txt &

我希望与“traffic.sh”非常相似。

3 个答案:

答案 0 :(得分:3)

这样做的原因是所有进程都试图立即使用该文件。您需要等待每个人完成其任务。您所要做的就是包含te /wait命令的start参数。试试这个:

start /wait /B netperf.exe -H HOST IP >> file.txt
start /wait /B netperf.exe -H HOST IP >> file.txt
start /wait /B netperf.exe -H HOST IP >> file.txt
...

这应该可以正常工作!

莫纳

答案 1 :(得分:0)

以下是将多个命令的输出同时重定向到同一文件的另一种方法:

...
(
start /B netperf.exe -H HOST IP
start /B netperf.exe -H HOST IP
start /B netperf.exe -H HOST IP
::Add more commands if needed
)>>file.txt

不幸的是,我无法测试这是否适用于您当前的情况。

答案 2 :(得分:0)

你尝试过cygwin吗?我认为你的“traffic.sh”脚本可能会有一些小的改动(可能是解释器和行结尾)