Bonjour,
je rencontre un problème agaçant avec une boucle for incluant des sous instructions, voici le code :
le but :Code:
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 Rem initialisation du compteur set Compteur=0 Rem le dossier "Repertoire" contient le fichier Contenu.txt, et se trouve dans le même répertoire que le batch cd \Repertoire Rem pour chaque ligne du fichier Contenu.txt for /f "tokens=*" %%a in (Contenu.txt) do ( Rem Si le fichier décrit à la ligne lue est présent sur le disque dur : if exist "%%a" ( Rem Copier un truc indépendant de %%a du fichier blabla.txt vers le fichier fichier_tiers.txt : type blabla.txt >> fichier_tiers.txt Rem écrire que le fichier de la ligne lue est présent dans le fichier journal.txt echo %%a present >> journal.txt Rem incrémenter de 1 le compteur : set /a Compteur=%Compteur%+1 Rem sauter deux lignes dans le fichier fichier_tiers.txt : echo. >> fichier_tiers.txt echo. >> fichier_tiers.txt Rem je voudrais qu'il sorte ici s'il a trouvé un fichier -> :fin, sinon continuer la lecture de Contenu.txt ) ) :fin
1.lecture du fichier Contenu.txt dont voici un échantillon :
2. Vérification de la présence du fichier sur le disque dur, lu sur la ligne l de Contenu.txt :Code:
1
2
3 %SystemDrive%\def.txt %SystemDrive%\x.exe %SystemDrive%\abc.txt
- si ce fichier est présent, sortir définitivement de la boucle et appliquer les instructions d'après, il ne faut pas que les lignes suivantes soient lues
- si ce fichier n'est pas présent, passer à la ligne l+1, et ainsi de suite jusqu'à la fin de la lecture ; si toujours rien trouvé, passer à :fin
J'ai également essayer d'assigner %%a à une variable :
mais à ce niveau, echo %filename% ne renvoie rien, donc le fichier journal.txt est vide.Code:
1
2
3 Rem Si le fichier décrit à la ligne lue est présent sur le disque dur : if exist "%%a" ( set %filename%=%%a
Il semblerait qu'en plus du problème initial, les variables d'environnement soient mal tolérées et que C:\ marche mieux que %systemdrive%
Quelle serait votre approche dans ce genre de circonstance ?
Merci