Nom d'un service dans une variable [Résolu/Fermé]

Signaler
-
 poules -
Bonjour,

Je souhaiterai récupérer le nom d'un service correspondant à un exécutable et le mettre dans une variable, car suivant les PC, le nom du service peut changer, mais son nom d’exécutable est toujours le même.

Donc par exemple pour mysqld.exe des fois il peut s'appeler mysql, des fois il peut s'appeller mysql57 ou encore autrement si le nom a été changé a l'installation.

J'ai trouvé cette commande pour récupérer son nom mais elle fonctionne uniquement si le nom du service contient au moins une serie de caractère connu.. (ici mysql)

wmic service where 'name like "%sql%"' get name | find /i "mysql"


Mon second problème est que je n'arrive pas a mettre le résultat de cette fonction dans une variable.

J'ai donc essayé de mettre le résultat dans un fichier puis de récupérer le contenu du fichier dans la variable, mais j'obtiens l'erreur comme quoi %%i est inattendu.

wmic service where 'name like "%sql%"' get name | find /i "mysql" > %APPDATA%\tempfile.txt

for /f %%i in (%APPDATA%\tempfile.txt) do (set variable=%%i)

echo %variable%



Si quelqu'un a une idée je suis preneur, merci beaucoup.


2 réponses

Messages postés
32213
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
21 juin 2021
7 755
Bonjour,

A l’intérieur d'un .bat la syntaxe c'est
for /f %%i
, mais si on exécute la commande à la main dans une fenêtre DOS, la syntaxe c'est
for /f %i
.

Bonjour et merci pour votre aide,

Cela m'a permit de tester correctement, tout fonctionne :

wmic service where 'name like "%sql%"' get name | find /i "mysql" > %APPDATA%\tempfile.txt

for /F %%i in (%APPDATA%\tempfile.txt) do (set nomser=%%i)

net stop %nomser%

net start %nomser%

del %APPDATA%\tempfile.txt



Cdt