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

Résolu
Lohiaa Messages postés 2 Statut Membre -  
Lohiaa Messages postés 2 Statut Membre -
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 ! :)

2 réponses

  1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
     
    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
    1. little boy62 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   1 790
       
      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
      1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930 > little boy62 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
         
        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
    2. little boy62 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   1 790
       
      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
      1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930 > little boy62 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
         
        A toi ça va servir, à l'intéressé je crois qu'on ne le saura jamais ;).
        0
  2. Lohiaa Messages postés 2 Statut Membre
     
    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