Nom d'un service dans une variable

Résolu/Fermé
poules - 22 févr. 2018 à 11:56
 poules - 22 févr. 2018 à 14:45
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

jee pee Messages postés 39650 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 26 avril 2024 9 238
Modifié le 22 févr. 2018 à 13:58
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
.

0
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
0