View Full Version : eseguire servizio da cmd
fabry0405
04-06-2021, 11:16
ciao a tutti vorrei sapere se è possibile eseguire tramite cmd l'avvio di un servizio windows MA solo se questo servizio non è già in esecuzione ?
ho creato un file bat che lancia il seguente comando:
net start spooler
se il file bat parte quando il servizio non è in esecuzione funziona correttamente
se parte quando il servizio è già in esecuzione a volte crea problemi
E' possibile dire al file bat di partire solo qunado il servizio spooler non è in esecuzione ? magari tramite un comando if ?
se il servizio è già avviato mi pare ovvio che non accade nulla.
se non è avviato, parte. non capisco il problema.
come non capisco quali problemi tu abbia nel caso in cui esegui il bat e il servizio è già in esecuzione... non dovrebbe capitare nulla.
anche io uso a volte file bat x fare quello che tu dici e parte (se non già avviato) oppure non accede nulla (in caso il servizio sia già avviato).
x_Master_x
04-06-2021, 14:14
: x_Master_x
@ECHO OFF
FOR /F "tokens=3 delims=: " %%X in ('SC QUERY "NomeServizio" ^| FINDSTR " STATO"') DO (
IF /I "%%X" NEQ "RUNNINGS" (
ECHO NET START "NomeServizio"
)
)
fabry0405
05-06-2021, 14:21
: x_Master_x
@ECHO OFF
FOR /F "tokens=3 delims=: " %%X in ('SC QUERY "NomeServizio" ^| FINDSTR " STATO"') DO (
IF /I "%%X" NEQ "RUNNINGS" (
ECHO NET START "NomeServizio"
)
)
Questo comando cosa fa esattamente?
Credevo bastasse una sintassi più semplice
Katsaros
05-06-2021, 17:55
.
x_Master_x
05-06-2021, 20:09
Questo comando cosa fa esattamente?
Credevo bastasse una sintassi più semplice
Quale comando? Comunque, controlla se il servizio è in esecuzione con SC QUERY. Se lo stato non è RUNNING lo avvia.
fabry0405
08-06-2021, 21:56
Quale comando? Comunque, controlla se il servizio è in esecuzione con SC QUERY. Se lo stato non è RUNNING lo avvia.
La sintassi che mi hai girato è molto difficile da capire...
Non esiste una sintassi più semplice ?
ad es.
if "nome servizio" è false net start "nome servizio"
x_Master_x
09-06-2021, 05:59
Non ti capisco...
Se lo vuoi usare, prendi "NomeServizio" che è scritto due volte, metti il tuo servizio, togli l'ECHO, avvia.
Se lo vuoi capire invece, studia. È un ciclo FOR e un IF. Se ti metti con un minimo di impegno, in quanto, 30 minuti? Mi tengo largo, e ti sarà chiaro. Sono QUATTRO RIGHE di codice, non la divina commedia. QUATTRO RIGHE.
Non esiste "IF NOT SERVIZIOESISTE THEN NET START", a meno che non ti scrivi tu la funzione SERVIZIOESISTE. Quindi o lo usi, o lo studi e poi lo usi.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.