1

我对 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”。

4

3 回答 3

3

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

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
...

那应该可以正常工作!

莫娜

于 2013-09-26T06:42:05.250 回答
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

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

于 2013-10-22T05:35:27.113 回答
0

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

于 2013-10-22T05:46:03.050 回答