Eventi comuni di sistema e / o ambientali come la ripresa dallo standby o la perdita della connessione di rete possono causare problemi a determinate applicazioni che si aspettano di essere sempre attive e connesse. Quindi, se hai una certa applicazione che si arresta in modo anomalo o entra in modalità "non risponde" un po 'frequentemente e un riavvio è l'unica soluzione per questo, abbiamo una semplice correzione per te sotto forma di uno script batch personalizzabile per uccidere semplicemente l'applicazione e riavviarlo.
Oltre alla situazione ovvia sopra, questo script può essere utilizzato per una serie di attività utili, come:
- Riavvia facilmente un'applicazione facendo doppio clic o utilizzando un tasto di scelta rapida.
- Riavvia un programma solo quando è bloccato o non risponde.
- Esegui come attività pianificata per assicurarti che un'applicazione sia sempre in esecuzione.
- In qualsiasi altro luogo si desidera automatizzare il riavvio condizionale di un'applicazione.
La personalizzazione dello script dovrebbe essere abbastanza autoesplicativa dai commenti, quindi configura lo script in modo appropriato e sei pronto.
Il copione
@ECHO OFF
ECHO Riavvia applicazione
ECHO Scritto da: Jason Faulkner
ECHO SysadminGeek.com
ECO.
ECO.
SETLOCAL EnableExtensions
REM Immettere le informazioni sull'applicazione.
SET AppName = Nome applicazione
SET ExeFile = FileToLaunch.exe
SET ExePath = C: PathToApplication
REM Selezionare le condizioni per terminare l'applicazione.
REM Un valore di 1 = Sì, 0 = No
SET KillIfRunning = 1
SET KillIfNotResponding = 1
SET KillIfUnknownStatus = 1
REM Specificare quando avviare l'applicazione:
REM 1 = Avvia solo se il processo è stato precedentemente interrotto.
REM 0 = Avvia l'applicazione indipendentemente.
SET StartOnlyIfKilled = 1
SET KillStatus = "% TEMP% KillStatus.tmp.txt"
SET Success = 0
ECHO Interruzione dell'istanza% AppName% esistente in corso ...
IF {%KillIfRunning%} == {1} CALL: CheckKillStatus "% ExeFile%" "RUNNING"
IF {%KillIfNotResponding%} == {1} CALL: CheckKillStatus "% ExeFile%" "NON RISPONDE"
IF {%KillIfUnknownStatus%} == {1} CALL: CheckKillStatus "% ExeFile%" "UNKNOWN"
ECO.
IF {%StartOnlyIfKilled%} == {1} (
IF {%Success%} == {0} GOTO Fine
)
ECHO Riavvio di% AppName% ...
AVVIA "% ExeFile%" "% ExePath %% ExeFile%"
ECO.
SE ESISTE% KillStatus% DEL / F / Q% KillStatus%
ENDLOCAL
: CheckKillStatus
ECHO Uccidere con stato:% ~ 2
TASKKILL / FI "STATUS eq% ~ 2" / IM "% ~ 1" / F>% KillStatus%
SET / P KillResult = <% KillStatus%
Token FOR / F "= 1, * delims =:" %% A IN ("% KillResult%") DO (
ECHO %% A: %% B
IF / I {%%A} == {SUCCESS} SET / A Success =% Success% + 1
)
:Fine
Conclusione
Sebbene sia possibile trovare applicazioni che eseguono fondamentalmente la stessa funzione, l'uso di un semplice script come questo evita di avere "ancora un altro programma" in esecuzione in background.