Пакет: закрыть исполняемый файл, когда пакетный файл завершен - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть командный файл, который постоянно открывает игру в случае сбоя. Я пытаюсь сделать так, чтобы, если командный файл был закрыт, программа завершит работу.

@echo off

if "%1" equ "loop" goto %1
start "" /WAIT /B "%~F0" loop 
Taskkill /f /im "Crossy Road.exe" >nul
goto :EOF

:loop
tasklist /FI "IMAGENAME eq Crossy Road.exe" 2>NUL | find /I /N "Crossy Road.exe">NUL
if "%ERRORLEVEL%"=="1" explorer.exe shell:appsFolder\Yodo1Ltd.CrossyRoad_s3s3f300emkze!App
goto loop
pause
exit

1 Ответ

0 голосов
/ 16 апреля 2020

Вы можете создать сопутствующие vbs из пакетного сценария, который отслеживает процесс cmd.exe и вызывает другой пакетный сценарий для завершения нужных процессов. (этот пакетный скрипт-компаньон также может быть создан из вашей основной пакетной программы)


@ECHO OFF

::: Creates a VBS script to monitor the Cmd Process
:CreateMonitor
(
ECHO Set objWMIService = GetObject ("winmgmts:"^) 'Defines winmgmts service
ECHO Set proc = objWMIService.ExecQuery("select * from Win32_Process Where Name='cmd.exe'"^) 'Gets Current Process Count
ECHO DO while proc.count ^> 0 'Establishes Loop that ends when no cmd.exe windows or bat programs are open
ECHO Set proc = objWMIService.ExecQuery("select * from Win32_Process Where Name='cmd.exe'"^) 'Gets Current Process Count
ECHO if proc.count ^< 1 then exit do 'exits while loop once bat program is closed
ECHO wscript.sleep 2500 'Delays loop by 2.5 seconds to reduce CPU usage
ECHO loop 'Returns to get new process Count
ECHO Set WshShell=createobject("wscript.shell"^) 'Creates Shell to
ECHO WshShell.run "INSERT PATH TO TASK-KILL .BAT HERE", 0, false 'Launches hidden .bat to close desired programs
) >"%TEMP%\myprogramMonitor.vbs"

::: Starts the VBS to monitor if cmd.exe is open

Start "" "%TEMP%\myprogramMonitor.vbs"

GOTO :EOF

Целесообразно также включить в сопутствующую партию вспомогательную задачу для процесса WScript:

taskkill /pid WScript.exe /f /t >nul

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...