Bonjour,
j'essaie de créer un script batch pour exécuter un programme sur une série de fichiers, et sauvegarder les fichiers résultants dans un autre répertoire.
le programme s'exécute normalement de cette manière :
"chemin du programme" [param1] [param2]
où param1 = chemin + nom du fichier entrant (par exemple : c:\fichier1.txt)
param2 = chemin + nom du fichier sortant
Voici ce que j'ai donc fait :
1 2
| set /A n=1
FOR %%G IN ("%~dp0\files\*.txt") DO "%~dp0\programme_a_executer" "%%G" "%~dp0\final\%n%.txt" set/A n+=1 |
Le problème est que %%G me récupère le chemin entier+nom de chaque fichier, et pas seulement le nom de fichier (ce qui me simplifierait la tâche !)
J'espérais alors donner la valeur de ma variable n au nom du fichier sortant, puis incrémenter cette variable de 1 avant que la boucle FOR ne passe au fichier suivant.
Le problème c'est qu'à priori à chaque boucle la variable est initialisée à sa valeur de départ.
Je sais que l'on peut faire une incrémentation avec un par exemple, mais je ne saurais par mettre en place une boucle FOR dans une autre boucle FOR.
J'ai bien cherché un exemple similaire, mais je ne trouve pas de réponse à mon problème. Je suis tout à fait novice.
Une âme charitable pour me donner la méthode la plus simple ?
Merci, j'espère avoir énoncé mon problème clairement...
Partager