no save
Assistance
Achat
News

Forum | programmation
Commandes DOS : combinaison FOR et GOTO
Julien, le mer. 16 janv. 2008 à 22:11:03
Bonjour,

L'un de vous sait-il s'il est possible d'exécuter plusieurs commandes à chaque itération d'une boucle FOR dans un fichier batch (.bat) DOS ? Ceci sans appeler un fichier de commandes externe.

Dans le script qui suit, aucun problème si je remplace GOTO APPENDCOMMANDES par un simple ECHO %%F
qui affiche le nom de fichier contenu dans %%F. Ca se corse avec plusieurs instructions dans une procédure.

Je ne trouve pas le moyen de retourner dans la boucle FOR une fois les instructions de la procédure APPENDCOMMANDES terminées.
En outre, %%F ne renvoie plus le contenu de %%F lorsque dans la procédure, comme si la variable était locale à la boucle FOR.

Merci d'avance à ceux qui n'ont pas peur du DOS !

REM La boucle qui suit permet de lire les différents arguments passés à la suite de l'invocation de ce fichier batch.
REM On lit le 1er paramètre (stocké dans %1) et on exécute les commandes tant que %1 n'est pas vide.
REM Grâce à SHIFT, on décale les paramètres %2, %3, %4, etc. en direction de %1 tant que %1 n'est pas vide.
REM Ceci permet de lire plusieurs noms de fichiers placés dans %1, %2, %3, etc.
REM Grâce à FOR, on peut utiliser des wildcards pour désigner plusieurs fichiers. Par exemple: *.dat passé dans %1.
:LOOP
IF '%1'=='' GOTO FINISH
FOR %%F IN (%1) DO GOTO APPENDCOMMANDES
SHIFT
GOTO LOOP

REM Commandes pour un programme appelé ultérieurement.
:APPENDCOMMANDES
ECHO LOAD %%F >> Unit.cmd
ECHO GDES >> Unit.cmd
ECHO UNIT >> Unit.cmd
ECHO EXEC >> Unit.cmd
ECHO . >> Unit.cmd
SAVE %%F >> Unit.cmd

:FINISH
ECHO QUIT >> Unit.cmd
ECHO Fin du processus batch.


cchristian
janv. 08
Suivant
REPONSES
cchristian
janv. 08
Julien
janv. 08
cchristian
janv. 08
cchristian
janv. 08
Julien
janv. 08
cchristian
janv. 08
cchristian
janv. 08
Julien
janv. 08
cchristian
janv. 08
Julien
janv. 08
Version Web
Réalisé par RedShift
no save