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 :

Comment initialiser et lire un tableau de variables [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 45
    Par défaut Comment initialiser et lire un tableau de variables
    Bonjour,

    Je réalise uns script batch qui copie un fichier (une appli Access) sur les postes clients.

    Voila 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
    14
    @echo off
    set tab0=client1.mdb
    set tab1=client2.mdb
    set tab2=client3.mdb
    ...
    set tab6=client7.mdb
    
    set nomFichier=fichierClient.mdb
    set repDestination=.\test\
    
    for /L %%i in (0,1,6) do (
    	copy /Y /F %nomFichier% %repDestination%!tab%%i! 
    )
    pause
    Mais il ne fonctionne pas, la syntaxe !tab%%i! semble poser problème

    Dois-je continuer dans cette voie, avec plusieurs variables dont les noms ne diffèrent que d'un chiffre ?
    Ou sinon peut-on faire un "vrai" tableau en batch du genre "set tab[]", que l'on parcours avec tab[i] ?

    Merci

  2. #2
    Membre Expert
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Par défaut
    salut,

    le mieux est de voir ce post ((de maxim_um)):
    http://www.developpez.net/forums/d69...e/#post4076938

  3. #3
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 45
    Par défaut
    J'ai tout lu mais je ne vois pas trop le lien avec mon problème (bien que ce fût une lecture intéressante)

    En fait ma commande copy est mauvaise car je passais par xcopy avant, il faut la modifier en "copy /Y %nomFichier% %repDestination%!tab%%i!"

    Ce qui recopie bien mes fichiers, mais leur donne des noms comme !tab1! !tab2! etc...
    Il n'interprète pas tab1 comme le nom de ma variable mais comme une chaine quelquonque.

    Je m'étais pourtant inspiré de ce post du forum : http://www.developpez.net/forums/d69...e/#post4073892

    Mais sinon, je repose ma question, peut-on faire des tableaux autrement que par de multiples variables, nommées avec des chiffres ?

    edit : Finalement c'est bon avec "setlocal enabledelayedexpansion", mais je ne comprend pas trop pourquoi malgré ma lecture précédente.

    Merci beaucoup !

  4. #4
    Invité de passage
    Inscrit en
    Février 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 1
    Par défaut
    Citation Envoyé par -ULK- Voir le message

    edit : Finalement c'est bon avec "setlocal enabledelayedexpansion", mais je ne comprend pas trop pourquoi malgré ma lecture précédente.

    Merci beaucoup !
    J'arrive un peu tard...

    En fait la formulation de ta variable !tab%%i! impose l'utilisation de l'expansion retardée setlocal enabledelayedexpansion

    Si tu n'utilise pas l'expansion retardé, toute chaine entre '!' sera affiché tel quel.

    Exemple:
    - sans setlocal enabledelayedexpansion
    set VARIABLE=TOTO
    echo !VARIABLE!

    la console affichera le texte !VARIABLE!

    - avec setlocal enabledelayedexpansion
    set VARIABLE=TOTO
    echo !VARIABLE!
    la console affichera le texte TOTO


    Pour faire simple sans setlocal enabledelayedexpansion il faut impérativement utilisé les %.
    Avec setlocal enabledelayedexpansion tu peux utiliser les ! et les %. Sans oublié que les ! c'est pour utiliser l'expansion retardé et les % c'est pour ne pas les utiliser.

    En espérant aider ceux qui retombe sur ce poste et qui comme toi ne comprennes pas ce comportement.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 22/05/2006, 13h03
  2. Réponses: 5
    Dernier message: 11/05/2006, 14h15
  3. comment creer un tableau de variables
    Par jafo65 dans le forum C
    Réponses: 13
    Dernier message: 28/04/2006, 14h03
  4. Réponses: 35
    Dernier message: 14/02/2006, 18h57
  5. Comment obtenir un tableau à taille variable ?
    Par marsupilami34 dans le forum Langage
    Réponses: 6
    Dernier message: 27/06/2005, 15h03

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