Comment effectuer une action sur chaque fichier d'un repertoire avec un script batch

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