Batch script execution controller

Discussion forum for all Windows batch related topics.

Moderator: DosItHelp

Post Reply
Posts: 1
Joined: 27 Jul 2021 15:10

Batch script execution controller

#1 Post by MPDEV » 27 Jul 2021 15:21

Hi everyone and thanks in advance for the time dedicated :)
I'm trying to write a batch script that, in sequence:
1) Start an executable (which in this case is "new_emulator.bat", but it is only for example)
2) Controls repeatedly if the process generated from point 1 is still running.
My problem occurs precisely in the control phase, in the only IF present throughout the script (below), because it does not follow the instructions that should perform if the control had successful results, nor what should be performed otherwise ( That is to go back and create another process of the same executable). Please help me, I don't know what to do anymore!


Code: Select all

set /A i=0
set /A i=%i%+1
set windowTitle=singularBot%i%
START "%windowTitle%" C:\Users\Administrator\Desktop\Nuovo_emulatore.bat
setlocal enableextensions 
for /f "tokens=*" %%a in ( 'tasklist /FI "WindowTitle eq %windowTitle%*" /NH' ) do ( set riga=%%a ) 
set riga=%riga:~0,42%

for /f "tokens=*" %%a in ( 'tasklist /FI "WindowTitle eq %windowTitle%*" /NH' ) do ( set actual_output=%%a ) 
set actual_output=%actual_output:~0,42%
timeout /t 4 /nobreak
IF [%riga%] EQU [%actual_output%] (goto stillOpen) ELSE (goto closed)

timeout /t 4 /nobreak
goto anomal_closing_check

goto infinite_loop
Last edited by aGerman on 28 Jul 2021 05:24, edited 1 time in total.
Reason: code formatting

Posts: 4315
Joined: 23 Dec 2011 13:59

Re: Batch script execution controller

#2 Post by Squashman » 28 Jul 2021 07:40

I am not sure why you are checking if the process is still running. You are not doing anything with that information other than just checking it is running and if it is no longer running then restart the process again.
Why couldn't your script be as simple as this?

Code: Select all

set /A i=0
set /A i+=1
set windowTitle=singularBot%i%
TITLE singularBot%i%
CALL "C:\Users\Administrator\Desktop\Nuovo_emulatore.bat"
goto infinite_loop

Post Reply