Devo verificare se un servizio Windows è installato da un file batch. Posso immergermi in qualcosa di diverso dal batch se ne ho bisogno, ma preferirei non farlo. C'è un modo per fare questo?Come si fa a sapere se un servizio Windows viene installato usando (preferibilmente) solo batch?
risposta
è possibile eseguire "net stop [servicename]" se fallisce con "il nome del servizio non è valido" il servizio non è installato
Prova questo:
@echo off
SC QUERY ftpsvc > NUL
IF ERRORLEVEL 1060 GOTO MISSING
ECHO EXISTS
GOTO END
:MISSING
ECHO SERVICE MISSING
:END
Nota che il comando SC QUERY
query dal nome del servizio breve non il nome visualizzato. È possibile trovare questo nome guardando la scheda Generale delle proprietà di un servizio in Gestione servizi.
Ecco un esempio utilizzando sc query
per verificare se è installato un servizio di Windows e fermarsi se trovato.
sc query | find /I "%tmpServiceName%" > nul if not errorlevel 1 echo. && net stop %tmpServiceName% if errorlevel 1 echo. - Windows service %tmpServiceName% is not running or doesn't exist.
che dire:
sc interrogate "nameofyourservicehere"
ho trovato davvero utile in quanto tasklist
non darà informazioni sul fatto che il servizio sia installato o meno. (o non ho trovato il modo)
Bene questo controlla se il Servizio è in esecuzione. Tuttavia 'sc GetDisplayName ServiceName' funzionerebbe per controllare installato – Robin
Si dovrebbe usare "query", non "Stop" o qualcos'altro comando, lo "Stop" può interrompere il servizio se esiste, quindi non è la strada giusta.
@echo OFF
set _ServiceName=SomeServiceName
sc query %_ServiceName% | find "does not exist" >nul
if %ERRORLEVEL% EQU 0 echo Service Does Not Exist.
if %ERRORLEVEL% EQU 1 echo Service Exist.
- 1. Come verificare se è installato un servizio Windows in C#
- 2. Chef: come faccio a verificare se è installato un servizio?
- 3. Batch Script per installare o disinstallare un servizio Windows .NET
- 4. Come posso sapere se SQLite è installato correttamente su Linux?
- 5. Come si fa a iniettare un proxy in un servizio?
- 6. Installazione del servizio Windows con file batch?
- 7. Come si può sapere se l'iphone viene bloccato?
- 8. Come si può sapere se un'attività viene avviata senza transizione?
- 9. Come installare un servizio Windows usando Qt?
- 10. come si fa a sfilacciare usando nodemon?
- 11. Come si fa a comunicare Node.js con un servizio SOAP?
- 12. Come posso sapere se SP1 è installato su Windows Server 2008 R2 Standard?
- 13. Come fa C# a sapere quando eseguire un costruttore statico?
- 14. Invia messaggio Windows a un servizio Windows
- 15. come aprire l'app Facebook dall'URL solo se installato
- 16. Come posso sapere se un utente sta usando un laptop
- 17. Come posso sapere se .NET 4.02 è installato?
- 18. Dove viene installato Meteor su Windows?
- 19. Usando i comandi windows/dos shell/batch, come faccio a prendere un file e mantenere solo le linee univoche?
- 20. Come sapere se node.js è installato o meno
- 21. Come posso sapere se Visual Studio 2008 SP1 è installato?
- 22. Come rilevare Java viene installato tramite REGEDIT.exe da un file batch?
- 23. Come fai a sapere se Tomcat Server è installato sul tuo PC
- 24. Come fa il compilatore Rust a sapere se un valore è stato spostato o meno?
- 25. Come sapere se il componente VBA di Office è installato?
- 26. Come faccio a sapere quali connettori Eclipse M2E ho installato?
- 27. Come fa un browser a sapere se un sito supporta HTTP/2?
- 28. Come verificare se un programma è installato su sistema Windows
- 29. Come posso sapere rapidamente se un elenco contiene solo duplicati?
- 30. Come si fa a puppet copiare un file solo se la fonte esiste?
Sbagliato! Anche la sospensione breve di alcuni servizi potrebbe non essere desiderata, inoltre alcuni servizi sono protetti e non possono essere interrotti. – ST3
Concordo anche sul fatto che questo non dovrebbe essere contrassegnato come risposta, anche se potrebbe funzionare in alcuni casi. – leeman24