Comment utiliser Batch File For Loop pour traiter des fichiers et des dossiers ?
L’une des utilisations courantes des fichiers batch pour les boucles consiste à traiter des fichiers et des dossiers en masse. Par exemple, vous pouvez vouloir renommer, supprimer ou déplacer un certain nombre de fichiers ou de dossiers selon un modèle spécifique. Pour ce faire, vous pouvez utiliser certaines des options supplémentaires disponibles pour les boucles de traitement par lots, telles que :
- /F pour traiter les fichiers texte ou les résultats d’autres commandes.
- /R pour traiter les sous-dossiers de manière récursive.
- /D pour traiter les répertoires uniquement.
Voici la syntaxe du fichier batch for loop avec ces options supplémentaires :
FOR /F ["options"] %%parameter IN (set) DO command
Où:
- [« options »] sont des options supplémentaires qui peuvent être utilisées pour contrôler la façon dont la boucle for traite les fichiers texte ou les résultats des commandes. Les options les plus couramment utilisées sont les suivantes :
FOR /R [[drive:]path] %%parameter IN (set) DO command
Où:
- [[drive :]path] est le répertoire de départ à traiter par la boucle. S’il n’est pas spécifié, le répertoire courant sera utilisé.
- (set) est l’ensemble des fichiers à traiter par la boucle. Cet ensemble doit correspondre à un modèle de fichier (globbing de fichier), tel que *.txt ou ?.bat. Si cet ensemble est vide, tous les fichiers seront traités.
FOR /D %%parameter IN (set) DO command
Où:
- (set) est l’ensemble des répertoires à traiter par la boucle. Cet ensemble doit être un motif de correspondance de fichiers (globbing de fichiers), tel que * ou ?. Si cet ensemble est vide, tous les répertoires seront traités.
Exemple:
FOR /F "skip=1 delims=," %%A IN (data.csv) DO ECHO %%A
La commande ci-dessus ignore la première ligne du fichier data.csv, qui contient généralement les titres des colonnes, et affiche la valeur de la première colonne de chaque ligne suivante, séparée par des virgules.
FOR /F "tokens=1,2* usebackq" %%A IN ("file name.txt") DO ECHO %%A %%B %%C
La commande ci-dessus traite un fichier texte dont le nom contient des espaces et affiche les valeurs de la première, de la deuxième et de la dernière colonne de chaque ligne, séparées par des espaces ou des tabulations.
FOR /R C:\Users\ %%D IN (*.jpg) DO COPY %%D D:\Backup\
La commande ci-dessus recherche tous les fichiers portant l’extension .jpg dans le répertoire C:Users et ses sous-répertoires, et les copie dans le répertoire D:Backup.
FOR /D %%E IN (*) DO RMDIR /S /Q %%E
La commande ci-dessus supprime tous les répertoires et leur contenu dans le répertoire actuel.
Comment utiliser Batch File For Loop pour accéder aux informations sur les fichiers et les dossiers ?
Outre le traitement des fichiers et des dossiers à l’aide du fichier batch for loop, vous pouvez également accéder aux informations les concernant, telles que le nom, l’extension, la taille, la date de modification, les attributs et le chemin d’accès.
Pour ce faire, vous pouvez utiliser des modificateurs de chemin sur les variables de boucle. Un modificateur de chemin est un caractère spécial qui peut être ajouté après le signe de pourcentage (%) dans une variable de boucle pour modifier la valeur de cette variable.
Voici quelques modifications de trajectoire couramment utilisées :
- %~fparameter pour afficher le chemin complet d’un fichier ou d’un dossier.
- %~nparameter` pour afficher les noms de fichiers ou de dossiers sans les extensions.
- %~xparameter pour afficher les extensions de fichiers ou de dossiers.
- %~sparameter pour afficher le chemin court d’un fichier ou d’un dossier, ce qui est utile si le chemin contient des espaces.
- %~zparameter pour afficher la taille du fichier ou du dossier en octets.
- %~tparamètre pour afficher la date et l’heure de la modification d’un fichier ou d’un dossier.
- %~aparameter pour afficher les attributs d’un fichier ou d’un dossier, tels que R (lecture seule), H (caché), S (système), etc.
Exemple:
FOR %%F IN (*.txt) DO ECHO %%F %%~nF %%~xF %%~sF %%~zF %%~tF %%~aF
La commande ci-dessus affiche des informations sur tous les fichiers texte du répertoire actuel, telles que le nom, l’extension, le chemin court, la taille, la date de modification et les attributs.