Bonjour
je suis confornter à un problème dans mon bat.
Je souhaite vérifier la présence de plusieurs fichiers dans différents répertoires pour chacun je doissi il est présent, le renommer puis supprimer un autre fichier créer dans un autre répertoire.
voici le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 dir set /p mois= Quel est le mois en cours de traitement : rem on rentre le mois de traitement ex 05 set /p annee= Quel est l'année cours de traitement : rem on rentre l'année de traitement ex 2014 set nom1= AAAA%annee%%mois% REM nom du premier fichier à vérifier la présence set chemin1="c:\test\annee_en_cours\AAAA\" rem répertoire dans lequel il doit figurer set fichier1 = AAAA set nom2= BBBBB%annee%%mois% REM nom du 2eme fichier à vérifier la présence set chemin2="c:\test\annee_en_cours\BBBBB\" rem répertoire dans lequel il doit figurer set fichier2 = BBBB set nom3= CCCC%annee%%mois% REM nom du 3e fichier à vérifier la présence set chemin3="c:\test\annee_en_cours\CCCC\" rem répertoire dans lequel il doit figurer set fichier3 = CCCC rem dans la boucle suivante je désire vérifier la présence du nom(1) dans chemin(1) puis nom(2) dans chemin(2) au rythme du pas de ma boucle FOR setlocal enableDelayedExpansion for /l %%v in (1, 1,3) do ( set/A cheminactuel=chemin%%v rem --> dans la premiere boucle valeur devrait être chemin1 set/A fichier=nom%%v rem --> dans la premiere boucle valeur devrait être nom1 SET fichieractuel = %fichier%aaaamm.txt rem --> dans la premiere boucle valeur devrait être nom1aaaamm.txt (il dépend de la valeur au dessus ) set nomactuel = %fichier%%%v%annee%%mois%.txt rem --> dans la premiere boucle valeur devrait être AAAA201405.txt ( comme le précise les éléments d'entrée ligne 2&3) IF EXIST !cheminactuel!\%fichieractuel% (ren %fichieractuel% %nomactuel%.txt rem --> si le fichier existe je le renomme mais cheminactuel reste désespérement vide pause IF EXIST c:\test\resultat\%fichier%aaaamm.xml del c:\test\resultat\%fichier%aaaamm.xmlsaaaamm.xml ) rem -> puis je supprime le fichier pause dir ) endlocal l
Lors que je suis dans la boucle for les chemins et les noms de fichiers n'apparaissent pas correctement donc le bat ne s exécute pas .
je fais vraisemblablement une erreur mais je ne vois pas où ?
par avance merci
Partager