Comment effectuer une action sur chaque fichier d’un repertoire avec un script batch
Utilisation en ligne de commande :
for /f %f in ('dir /b c:\') do echo %f
Utilisation dans un fichier batch :
for /f %%f in ('dir /b c:\') do echo %%f
Mise a jour : si le repertoire contient des fichiers avec des espaces dans les noms, vous devez changer le delimiteur utilise par la commande for /f. Par exemple, vous pouvez utiliser le caractere pipe.
for /f "delims=|" %%f in ('dir /b c:\') do echo %%f
Mise a jour 2 : (un an et demi apres la reponse originale :-)) Si le nom du repertoire lui-meme contient un espace, vous pouvez utiliser l’option usebackq avec for :
for /f "usebackq delims=|" %%f in (`dir /b "c:\program files"`) do echo %%f
Et si vous devez utiliser la redirection de sortie ou le chainage de commandes, utilisez le caractere d’echappement (^) :
for /f "usebackq delims=|" %%f in (`dir /b "c:\program files" ^| findstr /i microsoft`) do echo %%f