Как запустить 2 программы одновременно в командной строке Windows - PullRequest
15 голосов
/ 27 июня 2011

Я использую 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 Здесь , но он относится к тому же методу, который я использую.

EDIT:

С помощью команды запуска он просто запускает 2 окна терминала и ничего не запускается!

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

Ответы [ 4 ]

20 голосов
/ 27 июня 2011

С помощью команды запуска она просто запускает 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 голосов
/ 19 июня 2013

start требует параметров для заголовка окна. Пытаться: запустите "Lolrecorder" "C: \ Program Files (x86) \ LOLReplay \ LOLRecorder.exe" запустите "Lol-Launcher" "G: \ League of Legends \ lol.launcher.exe"

Это даст cmd-окнам, запускаемым при запуске, заголовки «Lolrecorder» и «Lol-Launcher»

2 голосов
/ 21 марта 2014

Укажите заголовок и ключ / c, чтобы заставить окно STARTed уходить после завершения его команды.

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

Эта ссылка до сих пор отвечала почти на все мои вопросы о CMD.

1 голос
/ 27 июня 2011

call только для пакетных файлов и ожидает возврата вызываемого абонента.Вы должны использовать команду start, чтобы запустить фоновые программы.В качестве дополнительного бонуса вы можете указать приоритет для процесса.Если вам нужно запустить что-то от имени другого пользователя, используйте runas.

...