Boucle FOR dans .BAT

Le
PYL
Voila, j'ai un fichier filelist.txt dans lequel j'ai une liste de fichiers.

Je voudrais faire appliquer un traitement (monprog.exe) à chacun des
fichiers listés dans filelist.txt => monprog.exe fichier1.data puis
fichier2.data

Pour cela j'ai imaginé et testé des solutions avec la boucle FOR en .BAT DOS
mais je bloque

help please ;~(
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fltr
Le #1261836
PYL a ecrit le 29/05/2007 17:13:
Voila, j'ai un fichier filelist.txt dans lequel j'ai une liste de fichiers.

Je voudrais faire appliquer un traitement (monprog.exe) à chacun des
fichiers listés dans filelist.txt => monprog.exe fichier1.data puis
fichier2.data ...

Pour cela j'ai imaginé et testé des solutions avec la boucle FOR en .BAT DOS
mais je bloque ...

help please ;~(


Ci-dessous un .bat qui marche .Attention de mettre les adresses
complètes (répertoires) pour le fichier et le programme
Il peut aussi y avoir des soucis avec les caractères accentués, les noms
très longs etc.
======================== @Echo Off

If %1!==! (
Echo Lit une liste ds un fichier texte, puis lance monprog.exe avec
ce nom de fichier
Echo.
Echo Syntax: %~n0 listfile.txt
Goto :EOF)

If Not Exist %1 (
Echo Fichier non trouve - %1
Goto :EOF)

::Lit la liste, lance monprog.exe
Set /A _ = 0
For /F %%A In ('More /E +%_% %1') Do C:repertoiremonprog.exe %%A
goto :EOF
=======================
A+

Fltr

Jean-Claude BELLAMY
Le #1261835
"PYL" news:
Voila, j'ai un fichier filelist.txt dans lequel j'ai une liste de
fichiers.

Je voudrais faire appliquer un traitement (monprog.exe) à chacun des
fichiers listés dans filelist.txt => monprog.exe fichier1.data puis
fichier2.data ...

Pour cela j'ai imaginé et testé des solutions avec la boucle FOR en .BAT
DOS
Voila un mot de TROP !!!

Il n'y a pas un poil de DOS là-dedans !

mais je bloque ...
Et l'aide en ligne, elle est fait pour faire joli ou amuser les mômes ?


commande :
FOR /?

Ce qui donne :
@echo off
...
FOR /F %%A in (filelist.txt) do monprog.exe %%A
...

Vachement compliqué, n'est-il pas ? ;-)



COSAAAAAAAAAAQUE !!!!!!
;-)
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org

Jean-Claude BELLAMY
Le #1261833
"Fltr" news:465d3174$0$21144$
PYL a ecrit le 29/05/2007 17:13:
Voila, j'ai un fichier filelist.txt dans lequel j'ai une liste de
fichiers.

Je voudrais faire appliquer un traitement (monprog.exe) à chacun des
fichiers listés dans filelist.txt => monprog.exe fichier1.data puis
fichier2.data ...

Pour cela j'ai imaginé et testé des solutions avec la boucle FOR en .BAT
DOS mais je bloque ...

help please ;~(


Ci-dessous un .bat qui marche .Attention de mettre les adresses complètes
(répertoires) pour le fichier et le programme
[...]
Set /A _ = 0
For /F %%A In ('More /E +%_% %1') Do C:repertoiremonprog.exe %%A
goto :EOF



"Pourquoi faire simple quand on peut faire compliqué ?" (principe SHADOK de
base ! )
;-)


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org


Fltr
Le #1258814
Jean-Claude BELLAMY a ecrit le 30/05/2007 10:16:
"PYL" news:
Voila, j'ai un fichier filelist.txt dans lequel j'ai une liste de
fichiers.

Je voudrais faire appliquer un traitement (monprog.exe) à chacun des
fichiers listés dans filelist.txt => monprog.exe fichier1.data puis
fichier2.data ...

Pour cela j'ai imaginé et testé des solutions avec la boucle FOR en .BAT
DOS
Voila un mot de TROP !!!

Il n'y a pas un poil de DOS là-dedans !

mais je bloque ...
Et l'aide en ligne, elle est fait pour faire joli ou amuser les mômes ?


commande :
FOR /?

Ce qui donne :
@echo off
...
FOR /F %%A in (filelist.txt) do monprog.exe %%A
...

Vachement compliqué, n'est-il pas ? ;-)



COSAAAAAAAAAAQUE !!!!!!
;-)
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org



C'est bien un barbu ce Bellamy,
on se calme !!!


PYL
Le #1258764
Ah oui alors trop fort !!!
bref, merci mais j'aurai un peu mieux lu et j'aurai vu que %% dans un .bat
c'est mieux que % tout seul...

et maintenant que j'ai bien lu ; si on souhaite faire exécuter monprog.exe
et monprog2.exe dans la boucle FOR est-ce qu'il est encore plus fort pour
trouver ça ?




Jean-Claude BELLAMY a ecrit le 30/05/2007 10:16:
"PYL" news:
Voila, j'ai un fichier filelist.txt dans lequel j'ai une liste de
fichiers.

Je voudrais faire appliquer un traitement (monprog.exe) à chacun des
fichiers listés dans filelist.txt => monprog.exe fichier1.data puis
fichier2.data ...

Pour cela j'ai imaginé et testé des solutions avec la boucle FOR en .BAT
DOS
Voila un mot de TROP !!!

Il n'y a pas un poil de DOS là-dedans !

mais je bloque ...
Et l'aide en ligne, elle est fait pour faire joli ou amuser les mômes ?


commande :
FOR /?

Ce qui donne :
@echo off
...
FOR /F %%A in (filelist.txt) do monprog.exe %%A
...

Vachement compliqué, n'est-il pas ? ;-)



COSAAAAAAAAAAQUE !!!!!!
;-)
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org



C'est bien un barbu ce Bellamy,
on se calme !!!





Jean-Claude BELLAMY
Le #1258758
"PYL" news:
Ah oui alors trop fort !!!
bref, merci mais j'aurai un peu mieux lu et j'aurai vu que %% dans un .bat
c'est mieux que % tout seul...


C'est toujours comme çà quand on ne prend pas le temps élémentaire de LIRE
l'aide en ligne !!!
(gratuit !)

------------------ (copier-coller) ------------------
C:>for /?
Exécute une commande donnée pour chaque fichier d'un ensemble de fichiers.

FOR %variable IN (ensemble) DO commande [paramètres]

%variable Spécifie un paramètre remplaçable par une seule lettre.
(ensemble) Ensemble de fichiers. Caractères génériques autorisés.
commande Commande à exécuter pour chaque fichier.
paramètres Liste des paramètres ou des options pour la commande
spécifiée.

Pour utiliser la commande FOR dans un programme de commandes, spécifiez
%%variable au lieu de %variable. Les noms de variables respectent la
casse, donc %i est différent de %I.
[...]
------------------ (copier-coller) ------------------

et maintenant que j'ai bien lu ; si on souhaite faire exécuter monprog.exe
et monprog2.exe dans la boucle FOR est-ce qu'il est encore plus fort pour
trouver ça ?


Fastoche !!!!
Il suffit, au choix :
1) d'encadrer les commandes par des parenthèses
@echo off
...
FOR /F %%A in (filelist.txt) do (
monprog.exe %%A
monprog2.exe .....
monprog3.exe .....
if ....
set ....
call ....
....
)
...

2) utiliser l'opérateur de concaténation de commandes "&"
@echo off
...
FOR /F %%A in (filelist.txt) do monprog.exe %%A & monprog2.exe .....

La syntaxe avec "&" est plus simple et plus "légère", mais se limite à 1 ou
2 commandes, sinon çà devient illisible.
Dans ce cas, il vaut mieux passer aux parenthèses.


Re-vachement compliqué, n'est-il pas ? ;-)


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org

PYL
Le #1258386
Impec, merci pour tout ;-)


"PYL" news:
Ah oui alors trop fort !!!
bref, merci mais j'aurai un peu mieux lu et j'aurai vu que %% dans un .bat
c'est mieux que % tout seul...


C'est toujours comme çà quand on ne prend pas le temps élémentaire de LIRE
l'aide en ligne !!!
(gratuit !)

------------------ (copier-coller) ------------------
C:>for /?
Exécute une commande donnée pour chaque fichier d'un ensemble de fichiers.

FOR %variable IN (ensemble) DO commande [paramètres]

%variable Spécifie un paramètre remplaçable par une seule lettre.
(ensemble) Ensemble de fichiers. Caractères génériques autorisés.
commande Commande à exécuter pour chaque fichier.
paramètres Liste des paramètres ou des options pour la commande
spécifiée.

Pour utiliser la commande FOR dans un programme de commandes, spécifiez
%%variable au lieu de %variable. Les noms de variables respectent la
casse, donc %i est différent de %I.
[...]
------------------ (copier-coller) ------------------

et maintenant que j'ai bien lu ; si on souhaite faire exécuter monprog.exe
et monprog2.exe dans la boucle FOR est-ce qu'il est encore plus fort pour
trouver ça ?


Fastoche !!!!
Il suffit, au choix :
1) d'encadrer les commandes par des parenthèses
@echo off
...
FOR /F %%A in (filelist.txt) do (
monprog.exe %%A
monprog2.exe .....
monprog3.exe .....
if ....
set ....
call ....
....
)
...

2) utiliser l'opérateur de concaténation de commandes "&"
@echo off
...
FOR /F %%A in (filelist.txt) do monprog.exe %%A & monprog2.exe .....

La syntaxe avec "&" est plus simple et plus "légère", mais se limite à 1 ou
2 commandes, sinon çà devient illisible.
Dans ce cas, il vaut mieux passer aux parenthèses.


Re-vachement compliqué, n'est-il pas ? ;-)


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org




Publicité
Poster une réponse
Anonyme