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 :

Utilisation de %%x dans une commande set [Batch]


Sujet :

Scripts/Batch

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2019
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Utilisation de %%x dans une commande set
    Bonjour,

    Je ne pratique pas beacoup le batch sous windows 10, mais je ne comprends pas pourquoi ca ne fonctionne pas !!!
    Si quelqu'un peu m'aider ?

    Merci

    Voici mon code :

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @echo off
    setlocal DisableDelayedExpansion
     
    for /f "delims=" %%i in ('type "file.ini"') do (
    	ECHO %%i
    	SET result=%%i
    	ECHO result=%result%
    )
    pause

    Le resultat donne qq chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    First_launch=125522
    result=
    AutomaticUpdate=0
    result=
    MinimizeShortcut=ALT+SHIFT+M
    result=
    Impossible d'attribuer la valeur de %%i à ma variable result, je ne comprends pas pourquoi ?

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Je ne pratique pas beacoup le batch sous windows 10
    Ton code donnera la même chose sous Windows 7

    setlocal DisableDelayedExpansion
    C'est l'état par défaut, commande inutile.

    Essaie ceci:

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @echo off
    SETLOCAL ENABLEDELAYEDEXPANSION
     
    for /f "delims=" %%i in ('type "file.ini"') do (
    	ECHO %%i
    	SET result=%%i
    	ECHO result=!result!
    )
    pause

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2019
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Super, ça fonctionne.

    Après je ne comprends pas trop ce qui se passe.
    le "echo %result%" c'est quand même la bonne commande pour afficher une variable ?!

    Merci à toi

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Oui mais dans les blocs tel que le for tu a des "problèmes" d'évaluations de variable en temps réelle.
    Les blocs évaluent les variables avant de s'exécuter.

    Donc echo %result% ne réévalue pas la variable dans le bloc for et la valeur est toujours la même

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

Discussions similaires

  1. Utiliser un paste dans une commande system ()
    Par pupilSAS dans le forum R
    Réponses: 2
    Dernier message: 28/01/2019, 16h06
  2. Réponses: 1
    Dernier message: 28/06/2012, 08h54
  3. Utiliser des options dans une commandes
    Par Ladgalen dans le forum Débuter
    Réponses: 8
    Dernier message: 17/12/2009, 14h42
  4. [Toutes versions] Utilisation d'une variable dans une commande VB
    Par HaHaa dans le forum VBA Access
    Réponses: 2
    Dernier message: 28/05/2009, 18h46
  5. Réponses: 21
    Dernier message: 21/08/2008, 23h30

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