如何在 Windows 命令提示符下同时启动 2 个程序

Posted

技术标签:

【中文标题】如何在 Windows 命令提示符下同时启动 2 个程序【英文标题】:How to start 2 programs simultaneously in windows command prompt 【发布时间】:2011-09-23 04:26:54 【问题描述】:

我使用的是 Windows 7 64 位

这是我用来启动的代码 sn-p

@echo off
call "C:\Program Files (x86)\LOLReplay\LOLRecorder.exe"
call "G:\League of Legends\lol.launcher.exe"
exit

但除非我关闭 LOLRecorder.exe,否则它不会启动我的 lol.launcher.exe.... 基本上我希望在它们启动后运行和 cmd 提示符退出。这里有什么问题?我查看了另一个 *** 答案 Here,但它指的是我正在使用的相同方法。

编辑:

使用 start 命令,它只会启动 2 个终端窗口,但什么也没有启动!

@echo off
start "C:\Program Files (x86)\LOLReplay\LOLRecorder.exe"
start "G:\League of Legends\lol.launcher.exe"
exit

【问题讨论】:

【参考方案1】:

call 仅用于批处理文件,它等待被调用者返回。您应该使用start 命令来启动后台程序。作为额外的奖励,您可以指定流程的优先级。如果您需要以其他用户身份运行某些内容,请使用 runas

【讨论】:

@footy:这两个命令中的任何一个是否单独(没有start)正确启动相应的程序,或者您是否可能缺少一些基本的命令行选项? (哦,我认为不需要说“退出”。) 单独工作。启动这些程序时,我无需提供任何 cmd 行参数。【参考方案2】:

使用 start 命令,它只会启动 2 个终端窗口,但什么也没有启动!

问题在于引号(不幸的是,由于路径中的空格,引号是必需的)。 start 命令似乎不喜欢它们。

您可以通过对所有目录使用短 DOS 名称(并删除引号)来解决此问题,或者通过单独指定目录并引用它(start 命令似乎能够处理)。

试试这个:

@echo off
start /d "C:\Program Files (x86)\LOLReplay" LOLRecorder.exe
start /d "G:\League of Legends" lol.launcher.exe

或者,如果您的批处理文件将来变得更加复杂,或者您的程序名称中有空格,则:

@ECHO OFF

CALL :MainScript
GOTO :EOF

:MainScript
  CALL :RunProgramAsync "C:\Program Files (x86)\LOLReplay\LOLRecorder.exe"
  CALL :RunProgramAsync "G:\League of Legends\lol.launcher.exe"
GOTO :EOF

:RunProgramAsync
  REM ~sI expands the variable to contain short DOS names only
  start %~s1
GOTO :EOF

【讨论】:

【参考方案3】:

start 需要窗口标题的参数。 尝试: 启动 "Lolrecorder" "C:\Program Files (x86)\LOLReplay\LOLRecorder.exe" 启动“Lol-Launcher”“G:\英雄联盟\lol.launcher.exe”

这会给以“Lolrecorder”和“Lol-Launcher”为标题的cmd-windows启动

【讨论】:

【参考方案4】:

指定标题和 /c 开关以告知已启动的窗口在其命令完成后消失。

start "recorder" /c "C:\Program Files (x86)\LOLReplay\LOLRecorder.exe"
start "LOL" /c "G:\League of Legends\lol.launcher.exe"

到目前为止,这个reference 回答了我几乎关于 CMD 的所有问题。

【讨论】:

【参考方案5】:

徘徊的人可能有兴趣同时检查所有驱动器的正确性。这是一个简单的 .bat 文件:

@echo off
for %%a in (c d e f g h i j k l m n o p q r s t u v w x y z) do if exist %%a:\ start cmd /c "echo %%a: & chkdsk %%a: & pause"

脚本在检查每个驱动器后等待密钥。每个驱动器都有自己的 cmd 窗口。

您应该避免检查和修复(以上只是检查)驱动器,其中一个驱动器是另一个驱动器中的容器(例如 VeraCrypt 容器、VHD、VHDX)。

【讨论】:

以上是关于如何在 Windows 命令提示符下同时启动 2 个程序的主要内容,如果未能解决你的问题,请参考以下文章

如何在CMD在开启SQL Sever服务

使用带命令提示符的安全模式解决用户忘记密码

在没有可见命令提示符窗口的情况下在 Windows 上自动启动 websocket 服务器

如何在 Windows 上使用多个版本的 Julia

如何查看电脑windows版本

如何使用命令提示符重新启动服务?