IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

récupérer q'une partie d'un résultat [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 9
    Points : 15
    Points
    15
    Par défaut récupérer q'une partie d'un résultat
    Bonjour,

    Je débute en script et galère...
    J'envoie le résultat d'une commande dans un fichier .txt, mais je ne veux récupérer qu'une partie du résultat pour l'affecter par la suite à une variable.

    résultat s'affichant dans le fichier

    Mode de gestion de l'alimentation import‚ correctement. GUIDÿ: 64e0f2bd-c585-4350-88bf-d5d087867147

    je veux récupérer uniquement 64e0f2bd-c585-4350-88bf-d5d087867147

    Comment faire??? Je ne vois pas...

    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @echo off
    for /f "delims=: tokens=2" %%a in ('Type test.txt') do (set Num=%%a)
    echo %Num%
    pause

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 9
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par hackoofr Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @echo off
    for /f "delims=: tokens=2" %%a in ('Type test.txt') do (set Num=%%a)
    echo %Num%
    pause
    Salut,

    Un grand merci, je luttais depuis 2 jours. Le script fonctionne bien. Pour info, installant un grand nombre de pc, je devais à chaque fois redéfinir les options d'alimentations.
    Avec la commande powercfg Export j'ai pu exporter dans un fichier .pow un "profil alimentation" configuré comme je le souhaite.
    Le script me permet en un clic de définir le même profil sur chaque nouveau poste à installer.

    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    echo off
    
    cls
    
    copy portable.pow d:\portable.pow
    
    powercfg -IMPORT d:\portable.pow >temp.txt
    
    for /f "delims=: tokens=2" %%a in ('Type temp.txt') do (set Num=%%a)
    
    echo %Num%
    
    powercfg /SETACTIVE %NUM%
    Par contre pourrais tu me décrypter cette commande for, car j'y avais pensé mais ne voyait pas comment l'écrire.
    delims=: tu indiques à la commande de traiter tout le contenu.
    tokens=2 colonne 2? la je pige pas.
    %%a valeur de la variable
    Type temp.txt la cible
    Num la variable en elle même.
    Je ne vois pas comment la sélection se fait au sein du .txt avec cette commande.

    Merci d'avance.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 9
    Points : 15
    Points
    15
    Par défaut
    C'est bon, je viens de saisir que le l'imitateur coupe en deux la ligne à partir du : et le token à 2 indique de récupérer la valeur à droite du l'imitateur : .

  5. #5
    Membre éclairé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 359
    Points : 738
    Points
    738
    Billets dans le blog
    2
    Par défaut
    C'est exactement ça, l'option "delims" définit le délimiteur et l'option "tokens" définit quels sont les jetons qui sont récupèré. ainsi "tokens=2" définit que seul le deuxième jeton est récupéré, "tokens=2-4" définit que les jetons 2, 3 et 4 sont récupérés dans ce cas si le paramètre de la boucle for est "%%A" alors il seront accessible via les paramètres %%A, %%B et %%C.

    Attention %%A et %%a sont différent, les paramètres de la boucle "for" sont sensible à la casse (il respecte les majuscules et les minuscules).

    Si tu utilise cette syntaxe "tokens=1,3" alors seuls les jetons 1 et 3 sont récupéré, ils seront accessibles via %%a et %%b (si le paramètre %%a est utilisé dans la boucle). Si tu utilise cette syntaxe "tokens=1,3*" alors seuls les jetons 1, 3 et le reste de la ligne sont récupéré, ils seront accessibles via %%a, %%b et %%c. Le reste de la ligne est tout ce qui ce trouve après le délimiteur qui finit le jetons 3 y compris des délimiteurs.
    Le gourou dicte la ligne (de commande) à suivre ...

    Penser à lire le Tutoriel Batch ou a consulter la FAQ Batch et ses contributions,
    ainsi que le Cour sur la ligne de commande et des scripts

  6. #6
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 9
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par InitSreen Voir le message
    C'est exactement ça, l'option "delims" définit le délimiteur et l'option "tokens" définit quels sont les jetons qui sont récupèré. ainsi "tokens=2" définit que seul le deuxième jeton est récupéré, "tokens=2-4" définit que les jetons 2, 3 et 4 sont récupérés dans ce cas si le paramètre de la boucle for est "%%A" alors il seront accessible via les paramètres %%A, %%B et %%C.

    Attention %%A et %%a sont différent, les paramètres de la boucle "for" sont sensible à la casse (il respecte les majuscules et les minuscules).

    Si tu utilise cette syntaxe "tokens=1,3" alors seuls les jetons 1 et 3 sont récupéré, ils seront accessibles via %%a et %%b (si le paramètre %%a est utilisé dans la boucle). Si tu utilise cette syntaxe "tokens=1,3*" alors seuls les jetons 1, 3 et le reste de la ligne sont récupéré, ils seront accessibles via %%a, %%b et %%c. Le reste de la ligne est tout ce qui ce trouve après le délimiteur qui finit le jetons 3 y compris des délimiteurs.

    Merci pour ces explications.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/04/2010, 14h39
  2. Réponses: 3
    Dernier message: 22/10/2007, 20h43
  3. Afficher une partie d'un résultat
    Par MANU_2 dans le forum Langage
    Réponses: 3
    Dernier message: 11/09/2007, 19h03
  4. Réponses: 3
    Dernier message: 07/04/2006, 10h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo