我有一个批处理文件,我通常会这样调用:
longjob.cmd >result.txt 2>&1
这样可以正常工作,但脚本在执行期间更改了目录,而将我的shell保留在该目录中 - 这很麻烦。
有没有办法在子shell中运行命令 - 同时仍然允许捕获输出?
我试过了
cmd longjob.cmd >result.txt 2>&1
只是等待退出命令。
我也试过
start longjob.cmd >result.txt 2>&1
运行脚本,但在新窗口中,所有输出都发送到该窗口而不是文件。
答案 0 :(得分:12)
尝试
CMD /C longjob.cmd >result.txt 2>&1
不确定它将如何处理重定向,但CMD / C允许您告诉CMD要运行什么以及它应该在完成后退出。 (CMD / K让你告诉它运行一些东西,但在完成时就会坚持下去。)如果在一个内部运行,它将重新使用现有的控制台窗口。
答案 1 :(得分:0)