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 :

Développement de variable défecteux : variable vide


Sujet :

Scripts/Batch

  1. #1
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2017
    Messages : 29
    Par défaut Développement de variable défecteux : variable vide
    Salut,

    J'ai écrit cela :

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ::
    Setlocal EnableDelayedExpansion
    ::
    FOR /F "tokens=1,2 delims=;" %%a IN (C:\file.txt) DO (
    ECHO %%a
    set var1=%%a
    set var2=!var1:~0,2!
    ECHO %var2% > c:\resultat.txt
    )
    ::

    mais la variable var2 est vide dans la boucle
    le contenu du fichier resultat.txt est : Commande ECHO activ‚e.

    et en sortie de boucle, j'ai la valeur complète : 001.002.003.004 avec mes 2 espaces au début ....

    (et SVP, pas de PowerShell ou de VBS, merci)

  2. #2
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    @echo off
    Setlocal EnableDelayedExpansion
    
    FOR /F "tokens=1-6 delims=;" %%a IN (employes.csv) DO (
    set "prenom=%%c"
    set "prenom=!prenom:~0,1!"
    echo !prenom!
    )
    Tu dois activer l'expansion retardée !


  3. #3
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2017
    Messages : 29
    Par défaut C'est mieux
    Bonjour à tous !

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ::
     Setlocal EnableDelayedExpansion
     ::
     FOR /F "tokens=1,2 delims=;" %%a IN (C:\file.txt) DO (
     ECHO %%a
     set var1=%%a
     set var1=!var1:~2!
     ECHO !var1! > c:\resultat.txt
     )
     ::

    J'ai réalisé quelques modifications; les 2 espaces au début de ma valeur ne sont plus là.
    Mon fichier resultat.txt contient la bonne valeur.

    L'activation du retardement d'expansion pour les variables dans la boucle FOR était déjà activée via : " Setlocal EnableDelayedExpansion"


    Par contre, nouveau problème avec un message d'erreur :
    Niveau maximal de récursivité de setlocal a été atteint.

    A prioiri, le nombre d'itérations est 32 dans une une zone SETLOCAL.
    https://ss64.com/nt/setlocal.html
    Comment désactiver cette limitations ? (et surtout pourquoi cette limitation ?)
    A+

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 218
    Par défaut
    Je ne constate pas ton problème

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @echo off
    Setlocal EnableDelayedExpansion
    FOR /F "tokens=1,2 delims=;" %%a IN (C:\file.txt) DO (
    	SET var1=%%a
    	ECHO !var1:~2!
    ) >> c:\resultat.txt 
    pause

  5. #5
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2017
    Messages : 29
    Par défaut plus de problème ?
    Hello,
    Merci d'avoir pris le temps de me répondre.
    Sinon, cela ne dépend-t-il pas du nombre de lignes contenues dans le fichier "file.txt" ?
    (Il est vrai que par le passé ce problème n'existait pas ...ou alors je ne l'ai jamais rencontré...)
    Cdlt,

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 218
    Par défaut
    Tu as essayé avoir le code donné ?

Discussions similaires

  1. Variable de session vide
    Par lelapinou dans le forum Langage
    Réponses: 1
    Dernier message: 26/09/2007, 18h24
  2. [CSV] BUG => variable qui se vide
    Par vraipolite dans le forum Langage
    Réponses: 3
    Dernier message: 11/09/2007, 18h29
  3. Variables de session vides !
    Par juliotte dans le forum Langage
    Réponses: 12
    Dernier message: 11/08/2006, 10h12
  4. Réponses: 7
    Dernier message: 29/03/2006, 11h50
  5. Détecter si une variable Integer est vide..
    Par mickael.be dans le forum Langage
    Réponses: 4
    Dernier message: 19/02/2006, 10h34

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