windows-xp - 如何从另一个bat 文件在后台运行一个bat 文件?

标签 windows-xp batch-file cmd

我有一个“设置”脚本,我在早上运行它来启动我需要的所有程序。现在其中一些需要额外的环境设置,因此我需要将它们包装在小型 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/

相关文章:

java - 在cmd中运行eclipse项目

windows-vista - 在 XP 和 Vista 中工作的 VBScript 文件打开对话框?

windows - (Windows) 如何锁定所有应用程序(资源管理器、任务管理器等)并仅使浏览器处于事件状态?

for-loop - ffmpeg/for 循环 : How to make ffmpeg or cmd loop stops after it founds an error?

c++ - 使用 MinGW 的非标准位置构建 Boost 1.52

windows - 在 64 位 Windows 7 中替换 Vern Buerg 的 list.com

java - 治愈和预防 gephi 不稳定的提示和技巧?

c - Windows XP下,用C语言 : Checking if a file is open

windows - 检查批处理文件中的空白用户输入(无输入)

windows - 如何使用批处理文件检查驱动器格式类型