Je veux écrire un fichier batch qui effectue les opérations suivantes :
- Vérifier si un service est en cours d'exécution
- Si le service est en cours d'exécution, quitter le lot
- Si le service n'est pas en cours d'exécution, démarrer le service
Les exemples de code que j'ai trouvés sur Google ne fonctionnaient pas, donc j'ai décidé de ne pas les publier.
Démarrer un service se fait en exécutant :
net start "NOMDUSERVICE"
- Comment puis-je vérifier si un service est en cours d'exécution, et comment faire une déclaration if dans un fichier batch?
- Je suis un peu confus. Quel est l'argument que je dois passer au net start ? Le nom du service ou son nom d'affichage?
3 votes
Programmation sale : lorsque la seule chose que vous voulez faire est de démarrer le service s'il ne fonctionne pas, il suffit d'émettre la commande de démarrage. S'il ne fonctionne pas, le service démarrera. S'il fonctionne déjà, vous obtiendrez un message d'erreur mais le service continuera de fonctionner. Sale mais ça marche. Cependant, lorsque vous voulez exécuter d'autres commandes uniquement si vous avez dû démarrer le service, alors allez définitivement avec la version plus propre de lc.
0 votes
@Peter Schuetze : Oui, votre objection est correcte si le seul but est de démarrer le service. J'ai également inclus le journal des départs, et cetera, donc je suis resté avec la solution de lc.