2

假设在一个批处理文件中,我想异步执行myCommand(不等待它完成)。而且我不想在新的控制台窗口中执行myCommand 。

同时,我想将myCommand的输出重定向到 output.txt

所以在批处理文件中,如果我写

START myCommand > output.txt

output.txt 将为空,我将看到一个新窗口。

如果我写

myCommand > output.txt

然后我无法异步执行它。

有什么办法可以达到这三个要求吗?(异步,无新窗口,重定向输出)

谢谢!

4

2 回答 2

4

我还没有完全测试它,但我认为这可能有效:

start /b "" myCommand >output.txt

我相信这两种形式都可以正常工作 - 唯一的区别是标准错误是否也被重定向并且 START 无法启动 myCommand。

重定向 START:myCommand 和 START 输出都被重定向到文件。

start /b "" myCommand >output.txt >2&1

仅重定向 myCommand:仅重定向 myCommand 输出。任何 START 错误信息都会出现在屏幕上。请注意,我选择逃避重定向,而不是使用像 jeb 这样的引号

start /b "" myCommand ^>output.txt ^>2^&1
于 2013-01-26T06:59:17.630 回答
1

几乎像 dbenhams 回答,但您需要强制重定向到新线程,而不是start命令。

start "myTitle" "myCommand > output.txt"
于 2013-01-26T09:07:27.033 回答