Bonjour,
Un peu novice dans ce langage, j'aurai besoin de votre aide pour optimiser mon code
Voici l'explication de mon de code:
J'ai une liste de fichiers pdf (ListeDocMove.txt) à copier dans un répertoire (C:\Users\XXXXX\Desktop\PRO\ZZ_File).
Les fichiers pdf se trouvent dans une multitude de dossier sous-dossier.
Code Batch : 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 @ECHO off SET "srclist=F:\ListeDocMove.txt" SET "targetdir=C:\Users\XXXXX\Desktop\PRO\ZZ_File" SET "srcdir=F:\Projet\" FOR /f "delims=" %%f in ('type "%srclist%"') DO ( ECHO * Recherche du fichier "%%f", parcours des dossiers : ECHO - "%srcdir%" IF EXIST "%srcdir%\%%f" ( ECHO Trouvé : "%srcdir%\%%f" COPY /y "%srcdir%\%%a" "%targetdir%" ) ELSE ( FOR /f "delims=*" %%d in ('dir /b /a:d /s "%srcdir%"') DO ( ECHO - %%d IF EXIST "%%d\%%f" ( ECHO Trouvé : %%d\%%f COPY /y "%%d\%%f" "%targetdir%">NUL IF ERRORLEVEL 1 ( ECHO ECHEC ! ) ) ) ) ) Pause
Pour optimiser mon code je voudrais que lorsqu'il trouve un fichier, il le copie et passe à un autre fichier sans continuer de parcourir tous les dossiers...
J'ai tenté avec un goto :next mais je pense ne pas bien utilisé cette commande
Code Batch : 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 @ECHO off SET "srclist=F:\ListeDocMove.txt" SET "targetdir=C:\Users\XXXXX\Desktop\PRO\ZZ_File" SET "srcdir=F:\Projet\" FOR /f "delims=" %%f in ('type "%srclist%"') DO ( ECHO * Recherche du fichier "%%f", parcours des dossiers : ECHO - "%srcdir%" IF EXIST "%srcdir%\%%f" ( ECHO Trouvé : "%srcdir%\%%f" COPY /y "%srcdir%\%%a" "%targetdir%" GOTO :Next ) ELSE ( FOR /f "delims=*" %%d in ('dir /b /a:d /s "%srcdir%"') DO ( ECHO - %%d IF EXIST "%%d\%%f" ( ECHO Trouvé : %%d\%%f COPY /y "%%d\%%f" "%targetdir%">NUL GOTO :Next IF ERRORLEVEL 1 ( ECHO ECHEC ! ) ) ) ) :NEXT echo "suivant" ) Pause
Partager