我有一个“设置”脚本,我在早上运行它来启动我需要的所有程序。现在其中一些需要额外的环境设置,因此我需要将它们包装在小型 BAT 脚本中。
如何在 Windows XP 上后台运行这样的脚本?
CALL env-script.bat
同步运行它,即安装脚本只有在 env-script 中的命令终止后才能继续。
START/B env-script.bat
在同一命令提示符中运行 CMD.exe 的另一个实例,使其处于非常困惑的状态(我看到嵌套的 CMD.exe 的输出,键盘暂时失效,脚本未执行)。
START/B CMD env-script.bat
产生相同的结果。 CMD 中的标志似乎都不符合我的要求。
最佳答案
两岁了,但为了完整性......
标准内联方法:(即在 Linux 中使用 &
时得到的行为)
START /B CMD /C CALL "foo.bat" [args [...]]
注释:1. CALL
与 .bat 文件配对,因为它通常去的地方..(即,这只是 CMD/C CALL "foo.bat "
形式使其异步。通常,需要正确获取退出代码,但这在这里不是问题。); 2. 仅当名称包含空格时,才需要将 .bat 文件用双引号引起来。 (该名称可能是一条路径,在这种情况下,这种情况的可能性更大。)。
如果您不想要输出:
START /B CMD /C CALL "foo.bat" [args [...]] >NUL 2>&1
如果您希望 bat 在独立控制台上运行:(即另一个窗口)
START CMD /C CALL "foo.bat" [args [...]]
如果您希望其他窗口随后挂起:
START CMD /K CALL "foo.bat" [args [...]]
注意:这实际上是一种很糟糕的形式,除非您有用户特别想要将打开的窗口用作普通控制台。如果您只是希望窗口保留下来以便查看输出,最好在 bat 文件末尾添加 PAUSE
。或者甚至在命令行后添加 ^& PAUSE
:
START CMD /C CALL "foo.bat" [args [...]] ^& PAUSE
关于windows-xp - 如何从另一个bat 文件在后台运行一个bat 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/649634/