启动批处理文件挂起第二个命令

时间:2014-06-10 04:08:35

标签: windows batch-file

我创建了一个类似于

的启动bat文件
 taskkill /im RemoteDesktopManager.exe
 C:\Users\kheradmand\AppData\Local\Google\Chrome\Application\chrome.exe
 "C:\Program Files (x86)\JetBrains\PhpStorm 7.1.2\bin\PhpStorm.exe"
 "C:\Program Files\Mozilla Firefox\firefox.exe"

它完成第一个和第二个,但不会再继续,它们都存在

我该如何解决这个问题?

更新:我尝试了@ phd443322提供的建议并写了这个:

taskkill /im RemoteDesktopManager.exe
start "" /w C:\Users\kheradmand\AppData\Local\Google\Chrome\Application\chrome.exe
start "" /w "C:\Program Files (x86)\JetBrains\PhpStorm 7.1.2\bin\PhpStorm.exe"
start "" /w "C:\Program Files\Mozilla Firefox\firefox.exe"

有趣的是,每个命令仍然等待该程序关闭以继续下一个程序。

那为什么还不行?

2 个答案:

答案 0 :(得分:1)

与交互式文件不同,批处理文件等待程序退出。这些是“开始”命令中记录的规则。

如果启用了命令扩展,则为外部命令调用 通过命令行或START命令更改如下:

非可执行文件可以通过它们的文件关联来调用 通过键入文件的名称作为命令。 (例如,WORD.DOC会 启动与.DOC文件扩展名关联的应用程序。 有关如何创建这些命令,请参阅ASSOC和FTYPE命令 来自命令脚本的关联。

执行32位GUI应用程序的应用程序时,CMD.EXE     在返回之前不会等待应用程序终止     命令提示符。如果执行,则不会发生此新行为     在命令脚本中。

执行第一个标记为字符串" CMD"的命令行时     没有扩展或路径限定符,那么" CMD"被替换为     COMSPEC变量的值。这可以防止拾取CMD.EXE     从当前目录。

执行第一个令牌不包含的命令行时     扩展,然后CMD.EXE使用PATHEXT的值     环境变量,用于确定要查找的扩展名     以什么顺序PATHEXT变量的默认值     是:

    .COM;.EXE;.BAT;.CMD

Notice the syntax is the same as the PATH variable, with
semicolons separating the different elements.

搜索可执行文件时,如果任何扩展名都不匹配, 然后查看名称是否与目录名称匹配。如果确实如此,那就是 START命令在该路径上启动Explorer。如果完成了 命令行,它相当于对该路径执行CD / D.

答案 1 :(得分:1)

下面有一个正常工作的批处理文件,首先由phd443322建议:

taskkill /im RemoteDesktopManager.exe
start "" C:\Users\kheradmand\AppData\Local\Google\Chrome\Application\chrome.exe
start "" "C:\Program Files (x86)\JetBrains\PhpStorm 7.1.2\bin\PhpStorm.exe"
start "" "C:\Program Files\Mozilla Firefox\firefox.exe"