Récupérer une partie du résultat d'une commande en variable

Résolu/Fermé
Lohiaa Messages postés 2 Date d'inscription mercredi 7 juin 2017 Statut Membre Dernière intervention 30 juin 2017 - 7 juin 2017 à 21:13
Lohiaa Messages postés 2 Date d'inscription mercredi 7 juin 2017 Statut Membre Dernière intervention 30 juin 2017 - 30 juin 2017 à 13:29
Bonjour,

J'aimerais savoir si quelqu'un saurait comment récupérer une partie du résultat d'une commande dans une variable.
Je m'explique : J'aimerais créer un .bat qui éliminerait Skype du démarrage automatiquement.
En cherchant sur Internet j'ai trouvé ceci :

=> "wmic startup where caption="skype" list full"

On obtient un résultat variable pour le "Location =" en fonction des ordinateurs :

=>

"Caption=Skype
Command="C:\Program Files (x86)\Skype\Phone\Skype.exe" /minimized /regrun
Description=Skype
Location=HKU\S-1-5-21-325172630-181335914-2732737614-1000\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
SettingID=
User=DOBDX-ATELIER\Atelier"

Je voudrais récupérer uniquement ce qui suit "Location =" c'est à dire "HKU\S-1-5-21-325172630-181335914-2732737614-1000\SOFTWARE\Microsoft\Win
dows\CurrentVersion\Run" et le stocker dans une variable car j'en ai besoin pour la commande qui "supprime" l'application du démarrage, à savoir :

reg delete HKEY_USERS\S-1-5-21-325172630-181335914-2732737614-1000\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\ /v skype

D'avance merci pour votre aide ! :)
A voir également:

2 réponses

barnabe0057 Messages postés 14439 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 14 avril 2024 4 905
Modifié le 7 juin 2017 à 22:00
Bonjour,

Essaie ça :

@echo off
Setlocal enableextensions enabledelayedexpansion

wmic startup where caption="skype" list full | find "Location" > fichier.txt

for /f "tokens=*" %%A in (fichier.txt) do (

set string=%%A
set key=!string:~9!

echo !key!

)


echo.
pause
Endlocal
exit



“L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”
1
little boy62 Messages postés 3584 Date d'inscription lundi 11 novembre 2013 Statut Membre Dernière intervention 15 avril 2024 1 756
8 juin 2017 à 19:25
Salut Barnabe ;)

Ce topic m'intéresse...


Par contre, j'ai trouvé ça :
wmic startup where caption="skype" get "Location"


Le résultat est sous 2 lignes
Location
HKU\S-1-5-21-1386971854-3905309848-73855152-1001\SOFTWARE\Microsoft\Windows\CurrentVersion\Run


Peut-on, sans passer par un fichier, ne récupérer que la 2ème ligne dans une variable ?


++
0
barnabe0057 Messages postés 14439 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 14 avril 2024 4 905 > little boy62 Messages postés 3584 Date d'inscription lundi 11 novembre 2013 Statut Membre Dernière intervention 15 avril 2024
Modifié le 9 juin 2017 à 00:52
Slt, la boucle for /f permet de récupérer le résultat dans une variable :

for /f "tokens=*" %%A in ('wmic startup where caption^="skype" get "Location" ^| find "\"') do (echo %%A)


Ou bien :

for /f "tokens=*" %%A in ('wmic startup where caption^="skype" get "Location" ^| find /V "Location"') do (echo %%A)
0
little boy62 Messages postés 3584 Date d'inscription lundi 11 novembre 2013 Statut Membre Dernière intervention 15 avril 2024 1 756
9 juin 2017 à 09:40
Salut Et merci à toi.

Ca va me servir... Et aussi à l'intéressé.

for /f "tokens=*" %%A in ('wmic startup where caption^="skype" get "Location" ^| find "\"') do set var=%%A



;)


++
0
barnabe0057 Messages postés 14439 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 14 avril 2024 4 905 > little boy62 Messages postés 3584 Date d'inscription lundi 11 novembre 2013 Statut Membre Dernière intervention 15 avril 2024
Modifié le 12 juin 2017 à 21:26
A toi ça va servir, à l'intéressé je crois qu'on ne le saura jamais ;).
0
Lohiaa Messages postés 2 Date d'inscription mercredi 7 juin 2017 Statut Membre Dernière intervention 30 juin 2017
Modifié le 30 juin 2017 à 13:30
Bonjour à tous et merci pour votre aide précieuse !
J'ai réussi à faire ce que je voulais grâce à vos réponses !

Voici la structure de mon .bat :
@Echo off

for /f "tokens=*" %%A in ('wmic startup where caption^="skype" get "Location" ^| find "\"') do set var=%%A

echo Oui|REG DELETE "%var%" /v Skype



En l'exécutant, Skype est supprimé du démarrage et ne m'embête plus *-*
0