Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2754 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Concatenation dans une variable (set)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Concatenation dans une variable (set)

n°1414315
erlend
Posté le 27-07-2006 à 10:29:05  profilanswer
 

Bonjour,
 
Je souhaite lister tous les fichiers dans un répertoire
et pour chacun de ses fichiers j'aimerais les stocker dans une variable et qu'ils soient séparés par un point virgule (;)
 
Ma variable contiendrait "fic1 ; fic2; fic3; ... ; ficn;"
 

Code :
  1. set xmiFolder=F:\Users\Anthony\xmi
  2. set f=""
  3. for %%e in (dir %xmiFolder%\*.xmi) do (
  4. set f=%f% %%e
  5. )
  6. echo %f%


 
et j'obtient :

Code :
  1. "" F:\Users\Anthony\dernierfic.xmi;


 
Quoique je fasse ma variable contient seulement le dernier fichier de la boucle ..
La variable %f% est bien lu la première fois puisqu'on voit ""
mais ce qui est bizarre c'est que je ne dois pas réecrire sur la même variable ? dans la boucle ce n'est pourtant une variable locale ?
et je suis obligé de mettre le set f="" (ligne 2) sinon cette variable n'est jamais vidée. et meme si j'ai essayé c'est toujours le dernier fichier qui est ajouté.
 
Merci

mood
Publicité
Posté le 27-07-2006 à 10:29:05  profilanswer
 

n°1414523
wackevat
Posté le 27-07-2006 à 14:16:21  profilanswer
 

for /?
et lis la partie parlant de l'expansion retardée des variables d'environement.

n°1415038
erlend
Posté le 28-07-2006 à 08:57:17  profilanswer
 

ouai, j'ai pas trop compris ce que c'est expansion retardée à la vue d'autre post
mais j'ai remarqué l'utilisation d'un appel de procédure pour effectuer la tâche d'un for..

n°1415228
wackevat
Posté le 28-07-2006 à 13:31:17  profilanswer
 

Je ne sais pas de quel autre post tu parles ;) mais effectivement, un appel de procédure fera bien l'affaire et j'ai déjà donné un exemple dans chais_plus_quel_topic :D

n°1418370
maciew
Posté le 02-08-2006 à 16:48:48  profilanswer
 

Tu doit activer l'expansion des variables retardées :
SETLOCAL ENABLEDELAYEDEXPANSION
 
et tu fait ensuite :  
set f=!f! %%e
 
A+


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Concatenation dans une variable (set)

 

Sujets relatifs
nombre dans une BDD vers variablePasser une variable de php dans une requête sql
problème de boucle/session : envoi de doublons en nombre variable ?!Accès à une valeur de formulaire par l'intermédiaire d'une variable
creation variable automatique[Perl] générer une variable grace à une chaine
comment stocker le resultat d'un "select" dans une variablerésolu Problème de concaténation de variable
[ColdFusion] recréer une variable par concaténationvariable asp dans SQL :: concatenation!!
Plus de sujets relatifs à : Concatenation dans une variable (set)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR