Я пытаюсь создать скрипт, который запускает игру, ждет, пока она не закроется, а затем запускает одну последнюю команду. Основываясь на моих исследованиях, я хочу использовать флаг "/WAIT", но он, похоже, не работает:'(. Я на Windows 10 x64 полностью обновлен.

Вот сценарий:

::FreeSoftwareServers

set keymapperdir="G:\JoyToKey\"
set keymapper=JoyToKey.exe
set p1profile="G:\JoyToKey\BLANK.cfg"
set defaultprofile="G:\JoyToKey\Basic.cfg"

start /d %keymapperdir% %keymapper% %p1profile%

start /WAIT /d "G:\SteamLibrary\steamapps\common\rocketleague\Binaries\Win32" RocketLeague.exe

::pause

start /d %keymapperdir% %keymapper% %defaultprofile%

Любые идеи о том, как достичь моей цели? Или что не работает? Я искал в то время как циклы, которые ищут exe, но это кажется излишним и тратить ресурсы. Благодарю.

1 ответ1

0

Ну, я думаю, что проблема в том, что RocketLeague - это игра steam, поэтому исполняющая программа вызывает steam, временно закрывает, пока steam не открывает, но это только предположение. Эта функция работала, как и ожидалось, в не Steam игре. Я бы не возражал против проверки кода, но я решил просто использовать подход "цикла цикла", чтобы проверить, работает ли исполняемый файл с предисловием тайм-аута. У меня есть тонны космических ресурсов на моем домашнем сервере, так что это не так уж и много.

Вот как я получил это работает:

::FreeSoftwareServers

set keymapperdir="G:\JoyToKey\"
set keymapper=JoyToKey.exe
set p1profile="G:\JoyToKey\BLANK.cfg"
set defaultprofile="G:\JoyToKey\Basic.cfg"

start /d %keymapperdir% %keymapper% %p1profile%

"G:\SteamLibrary\steamapps\common\rocketleague\Binaries\Win32\RocketLeague.exe"

TIMEOUT /T 5

SETLOCAL EnableExtensions
set EXE=RocketLeague.exe
:while1
FOR /F %%x IN ('tasklist /NH /FI "IMAGENAME eq %EXE%"') DO IF %%x == %EXE% goto FOUND
goto FIN
:FOUND
TIMEOUT /T 5
goto :while1
:FIN

start /d %keymapperdir% %keymapper% %defaultprofile%

Я лучше с Bash, так что, если это кажется смешным, и у кого-то есть лучший подход, дайте мне знать, и я приму ответ.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .