Comment utiliser le fichier Batch For Loop pour créer des chemins relatifs ?
L’une des difficultés auxquelles vous pouvez être confronté lorsque vous utilisez un fichier batch pour une boucle est la création d’un chemin relatif pour le fichier ou le dossier traité par la boucle. Un chemin relatif est un chemin qui ne contient pas le nom initial du lecteur ou du répertoire, mais seulement une partie d’un chemin différent du répertoire actuel.
Par exemple, si le répertoire actuel est C:\Users\Alice\Documents, le chemin relatif du fichier C:\Users\Alice\Pictures\image.jpg est …\Pictures\image.jpg.Par exemple, si le répertoire actuel est C:\Users\Alice\Documents, le chemin relatif du fichier C:\Users\Alice\Pictures\image.jpg est …\N- \N- \N- \NPictures\image.jpg.
La création de chemins relatifs peut s’avérer utile si vous souhaitez déplacer, copier ou renommer des fichiers ou des dossiers vers un autre emplacement, tout en conservant la structure de répertoire d’origine. Par exemple, vous pourriez vouloir déplacer tous les fichiers texte du répertoire C:UsersAliceDocuments et de ses sous-répertoires vers le répertoire D:Backup, tout en conservant les sous-répertoires.
Pour créer des chemins relatifs avec des fichiers batch for loop, vous pouvez utiliser certaines des techniques suivantes :
- Utilise la variable d’environnement « CD » pour obtenir le répertoire courant et la supprime du chemin complet du fichier ou du dossier en utilisant la commande « SET.
- Utilisez l’option /V:ON pour activer l’expansion retardée des variables et utilisez un point d’exclamation ( !) comme délimiteur de variable au lieu d’un signe de pourcentage (%). Ceci est utile si vous voulez changer la valeur d’une variable dans une boucle.
- Utilise les commandes « PUSHD » et « POPD » pour changer le répertoire courant pendant la boucle, et utilise un point (.) pour se référer au répertoire courant.
Exemple:
@ECHO OFF SETLOCAL ENABLEDELAYEDEXPANSION FOR /R C:\Users\Alice\Documents %%G IN (*.txt) DO ( SET "source=%%G" SET "destination=!source:%CD%=!" ECHO !destination! ) ENDLOCAL
La commande ci-dessus recherche tous les fichiers texte dans le répertoire C:UsersAliceDocuments et ses sous-répertoires, et affiche leurs chemins d’accès relatifs à partir du répertoire actuel. Par exemple, si le répertoire actuel est C:ousersAliceDocuments, le chemin d’accès relatif du fichier C:ousersAliceDocumentsFolder1File1.txt est Folder1File1.txt.
@ECHO OFF FOR /R C:\Users\Alice\Documents %%H IN (*.txt) DO ( PUSHD "%%~dpH" SET "source=%%H" SET "destination=%CD%\%%~nxH" ECHO %destination% POPD )
La commande ci-dessus recherche tous les fichiers texte dans le répertoire C:UsersAliceDocuments et ses sous-répertoires, et affiche leur chemin d’accès complet en utilisant le répertoire actuel comme préfixe. Par exemple, si le répertoire actuel est D:\NBackup, le chemin complet du fichier C:\NUsers\NAlice\NDocuments\NFolder1\NFile1.txt est D:\NBackup\NFolder1\NFile1.txt.
Conclusion
Le fichier batch for loop est une fonctionnalité très utile pour créer des fichiers batch plus efficaces et plus flexibles. En utilisant une boucle for, vous pouvez répéter une commande spécifique pour chaque élément d’un ensemble de données, tel qu’une liste de valeurs, une plage de nombres ou le résultat d’une autre commande.
Vous pouvez également utiliser certaines des options supplémentaires disponibles pour les boucles for, telles que /F, /R et /D, pour traiter des fichiers texte, des sous-dossiers ou des répertoires. En outre, vous pouvez également accéder à des informations sur les fichiers et les dossiers traités par la boucle, telles que le nom, l’extension, la taille, la date de modification, les attributs et le chemin d’accès, en utilisant la modification du chemin d’accès sur les variables de la boucle.
Enfin, vous pouvez également créer un chemin relatif des fichiers et dossiers traités par la boucle, en utilisant plusieurs techniques telles que la suppression du répertoire actuel du chemin complet, l’activation de l’expansion retardée des variables ou le changement du répertoire actuel pendant la boucle.
Nous espérons que cet article sera utile à ceux d’entre vous qui souhaitent en savoir plus sur les fichiers batch pour les boucles dans Windows. Si vous avez des questions ou des suggestions, n’hésitez pas à laisser un commentaire ci-dessous. Merci d’avoir lu cet article.