Question

Comment parcourez-vous chaque fichier d'un répertoire contenant un fichier .bat ou .cmd?

Par souci de simplicité, veuillez fournir une réponse qui répète simplement le nom du fichier ou son chemin d'accès.

Était-ce utile?

La solution

Utilisation de la ligne de commande:

for /f %f in ('dir /b c:\') do echo %f

Utilisation du fichier de commandes:

for /f %%f in ('dir /b c:\') do echo %%f

Mettre à jour : si le répertoire contient des fichiers avec un espace dans les noms, vous devez modifier le délimiteur utilisé par la commande pour / f . par exemple, vous pouvez utiliser le caractère de pipe.

for /f "delims=|" %%f in ('dir /b c:\') do echo %%f

Mise à jour 2 : (rapide un an et demi après la réponse d'origine :-)) Si le nom du répertoire lui-même comporte un espace, vous pouvez utiliser le usebackq option sur le pour :

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 piping de commande, utilisez le caractère d'échappement ( ^ ):

for /f "usebackq delims=|" %%f in (`dir /b "c:\program files" ^| findstr /i microsoft`) do echo %%f

Autres conseils

Vous pouvez également utiliser:

forfiles /s /m *.png /c "cmd /c echo @path"

La commande forfiles est disponible dans Windows Vista et versions ultérieures.

Méthode la plus simple:

À partir de la ligne de commande, utilisez:

for %f in (*.*) do echo %f

À partir d'un fichier de traitement par lots (doublez le pourcentage de signes):

for %%f in (*.*) do echo %%f

À partir d'un fichier de commandes avec un dossier spécifié comme 1er paramètre:

for %%f in (%1\*.*) do echo %%f

Utiliser

for /r path %%var in (*.*) do some_command %%var

avec:

  • chemin étant le chemin de départ.
  • %% var étant un identifiant.
  • *. * étant un masque de fichier OU le contenu d'une variable.
  • une_commande étant la commande à exécuter avec le chemin et la variable concaténés en tant que paramètres.

Autre moyen:

for %f in (*.mp4) do call ffmpeg -i "%~f" -vcodec copy -acodec copy "%~nf.avi"

Certains logiciels malveillants marquaient tous les fichiers d’un répertoire comme étant cachés / système / en lecture seule. Si quelqu'un d'autre se trouve dans cette situation, insérez-le dans le répertoire et exécutez pour / f "delims = | " % f dans ('forfiles') attribue -s -h -r% f .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top