Как запустить 2 программы одновременно в командной строке Windows
Я использую Windows 7 64bit
Вот фрагмент кода, который я использую для начала
@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 завершались после их запуска. Что здесь не так? Я проверил другой ответ stackoverflow Здесь, но это относится к тому же методу, который я использую.
РЕДАКТИРОВАТЬ:
С помощью команды запуска он просто запускает 2 окна терминала и ничего не запускается!
@echo off
start "C:\Program Files (x86)\LOLReplay\LOLRecorder.exe"
start "G:\League of Legends\lol.launcher.exe"
exit
Ответы
Ответ 1
С помощью команды 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
Ответ 2
start требует параметров для названия окна. Попробуйте: запустите "Lolrecorder" "C:\Program Files (x86)\LOLReplay\LOLRecorder.exe" запустите "Lol-Launcher" "G:\League of Legends\lol.launcher.exe"
Это даст cmd-окна, начатые с начала названия "Lolrecorder" и "Lol-Launcher",
Ответ 3
Укажите заголовок и переключатель /c, чтобы сообщить, что окно STARTed исчезнет после завершения его команды.
start "recorder" /c "C:\Program Files (x86)\LOLReplay\LOLRecorder.exe"
start "LOL" /c "G:\League of Legends\lol.launcher.exe"
Эта ссылка до сих пор отвечала почти на каждый вопрос, который я когда-либо имел о CMD.
Ответ 4
call
предназначен только для пакетных файлов, и он ожидает возвращения вызываемого абонента. Вы должны использовать команду start
для запуска программ. В качестве дополнительного бонуса вы можете указать приоритет для процесса. Если вам нужно запустить что-то в качестве другого пользователя, используйте runas
.