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