[BAT] Concaténer une chaine dans un for

Concaténer une chaine dans un for [BAT] - Shell/Batch - Programmation

Marsh Posté le 27-04-2003 à 16:37:31    

  Salut
 
Je n'arrive pas à mettre dans une variable la concaténation de plusiseurs nom de fichiers:
 
set COM=toto
for %i in (*.txt) do set COM=%COM% %i
@echo %COM%
 
ça marche pas, il veut pas mon set COM dans le for...
merci
   ANT

Reply

Marsh Posté le 27-04-2003 à 16:37:31   

Reply

Marsh Posté le 28-04-2003 à 09:13:33    

Donc je rectifie, mon code marche mais ne fait pas ce que je souhaite:
à chaque passage dans le for, la valeur de COM vaut ça
toto file1.txt
toto file2.txt
toto file3.txt
 
alors que je voudrais qu'à la fin de mon for j'ai ça:
toto file1.txt file2.txt file3.txt

Reply

Marsh Posté le 28-04-2003 à 11:26:59    

:bounce:

Reply

Marsh Posté le 28-04-2003 à 14:38:00    

C'est parceque dans ton bat %com% n'est initialisé qu'à l'entrée dans le BAT.
pour contourner ce problème, et si tes noms de fichiers .txt ne comprennent pas d'espace, tu peux faire ainsi :
 
premier fichier bat : ant.bat
set COM=toto
for %%i in (*.txt) do call ant2.bat %%i
echo %COM%
 
deuxième fichier bat : ant2.bat
set toto=%toto% %1
 
A+
P.S. tu peux essayer (pas testé) si tes fichiers contiennent des espaces :
dans ant2.bat :
set toto=%toto% %1 %2 %3 %4 %5 %6 %7


Message édité par JPA le 28-04-2003 à 14:41:49
Reply

Marsh Posté le 28-04-2003 à 17:59:48    

Merci!  :hello:  
 
[pinaillage on]
 
en un seul fichier tu as une idée ?
 
[/pinaillage off]

Reply

Marsh Posté le 29-04-2003 à 08:50:28    

A cette heure ci (et avant d'aller prendre mon café) non, mais je vais essayer d'y réfléchir...
A+

Reply

Marsh Posté le 03-05-2003 à 10:46:33    

Salut,
Donc j'essaie mais j'y arrive pas:
ant2.bat:
@set toto=%toto% %1
 
ant.bat
set COM=toto
for %%i in (%PRJ%*.cpp) do call build2.bat %%i
echo %COM%
 
ben toto dans ant.bat n'est pas considéré comme une var donc...
set COM=%toto% marche pas non plus, encore moins
 
set toto=string
set COM=%toto%
 
help  :hello:

Reply

Marsh Posté le 03-05-2003 à 12:23:56    

Arretez avec vos BAT et faites des VBS, c'est 15 fois plus pratique !


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
Reply

Marsh Posté le 03-05-2003 à 12:26:34    

tout à fait d'accord (quoique je préfère les .js) mais l'intérête de mon .bat c'est que Context pouvait prendre la sortie console, est-ce que en vbs c'est le cas ?
en fait j'éxécute mon compiler (console) et je peux récupérer ce qu'il me dit,... en vbs c bon ?

Reply

Marsh Posté le 03-05-2003 à 12:30:21    

ANTSite a écrit :

tout à fait d'accord (quoique je préfère les .js) mais l'intérête de mon .bat c'est que Context pouvait prendre la sortie console, est-ce que en vbs c'est le cas ?
en fait j'éxécute mon compiler (console) et je peux récupérer ce qu'il me dit,... en vbs c bon ?


 
Utilise un '>' pour rediriger dans un fichier et lis le fichier avec un VBS, c'est plus simple que d'essayer de reinventer la roue avec un langage qui a 6 mots de vocabulaire.


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
Reply

Marsh Posté le 03-05-2003 à 12:30:21   

Reply

Marsh Posté le 03-05-2003 à 17:40:44    

Bon avec vbs / js j'arrive pas à récupérer les fichiers *.txt, quel est l'objet / activeX et méthode pour faire ça ?
J'ai pas compris ce que tu veux redirigrer, la sortie du .bat ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed