23Andrea
12-09-2015, 10:42
Ciao.
Ho scritto queste poche righe da aggiungere all'inizio di uno script, per impedire l'esecuzione contemporanea di più istanze:
TASKLIST /FI "WINDOWTITLE eq Una_sola_istanza.bat" |(
FINDSTR cmd.exe
)
IF %errorlevel% EQU 0 (
EXIT
)
TITLE Una_sola_istanza.bat
PAUSE
Il comando PAUSE è ovviamente a solo scopo di test, e deve essere sostituito con il codice da eseguire.
Il codice funziona correttamente se si fa ripetutamente doppio click sull'icona del file bat: solo la prima istanza viene eseguita, mentre le seguenti vengono terminate immediatamente.
Ma se, dopo l'apertura della prima finestra si clicca sul prompt, è possibile aprire una seconda istanza. Cliccando sul secondo prompt è possibile aprirne una terza... e così via.
Qualcuno più esperto di me conosce la ragione di questo comportamento?
Grazie,
Ho scritto queste poche righe da aggiungere all'inizio di uno script, per impedire l'esecuzione contemporanea di più istanze:
TASKLIST /FI "WINDOWTITLE eq Una_sola_istanza.bat" |(
FINDSTR cmd.exe
)
IF %errorlevel% EQU 0 (
EXIT
)
TITLE Una_sola_istanza.bat
PAUSE
Il comando PAUSE è ovviamente a solo scopo di test, e deve essere sostituito con il codice da eseguire.
Il codice funziona correttamente se si fa ripetutamente doppio click sull'icona del file bat: solo la prima istanza viene eseguita, mentre le seguenti vengono terminate immediatamente.
Ma se, dopo l'apertura della prima finestra si clicca sul prompt, è possibile aprire una seconda istanza. Cliccando sul secondo prompt è possibile aprirne una terza... e così via.
Qualcuno più esperto di me conosce la ragione di questo comportamento?
Grazie,