Concaténer une chaine dans un for [BAT] - Shell/Batch - Programmation
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
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
Marsh Posté le 28-04-2003 à 17:59:48
Merci!   
  
 
[pinaillage on] 
 
en un seul fichier tu as une idée ? 
 
[/pinaillage off]
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+
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   
 
Marsh Posté le 03-05-2003 à 12:23:56
Arretez avec vos BAT et faites des VBS, c'est 15 fois plus pratique !
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 ?
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 ?  | 
 
 
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. 
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 ?
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