Je dois vérifier si un service Windows est installé à partir d'un fichier batch. Je peux plonger dans autre chose que le lot si j'en ai besoin, mais je préférerais ne pas le faire. Est-ce qu'il y a un moyen de faire ça?Comment savoir si un service Windows est installé en utilisant (de préférence) uniquement par lots?
Comment savoir si un service Windows est installé en utilisant (de préférence) uniquement par lots?
Répondre
vous pouvez exécuter "net stop [servicename]" si elle échoue avec "le nom du service est invalide" le service est pas installé
Essayez ceci:
@echo off
SC QUERY ftpsvc > NUL
IF ERRORLEVEL 1060 GOTO MISSING
ECHO EXISTS
GOTO END
:MISSING
ECHO SERVICE MISSING
:END
Notez que la commande SC QUERY
requêtes par le nom de service court pas le nom d'affichage. Vous pouvez trouver ce nom en consultant l'onglet Général des propriétés d'un service dans Service Manager.
Voici un exemple utilisant sc query
pour vérifier si un service Windows est installé et s'arrêter s'il est trouvé.
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.
Qu'en est:
sc interrogate "nameofyourservicehere"
J'ai trouvé ce vraiment utile car tasklist
ne donnera pas d'informations que le service est installé ou non. (ou je n'ai pas trouvé comment)
Eh bien, cela vérifie si le service est en cours d'exécution. Cependant 'sc GetDisplayName ServiceName' fonctionnerait pour vérifier installé – Robin
Vous devez utiliser "requête", pas "Stop" ou autre chose, le "Stop" peut arrêter votre service s'il existe, alors ce n'est pas la bonne façon.
@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.
Mauvais! Même une courte suspension de certains services peut ne pas être souhaitée, de plus certains services sont protégés et ne peuvent pas être arrêtés. – ST3
Je suis également d'accord que cela ne devrait pas être marqué comme la réponse, bien que cela puisse fonctionner dans certains cas. – leeman24