Les éditeurs de texte comme le Bloc-notes et Notepad++ sont des outils polyvalents, permettant la création et la modification de divers types de fichiers, tels que les sous-titres, les journaux, les scripts de commandes ou encore les scripts PowerShell. Lorsque vous vous trouvez face à un grand nombre de fichiers texte, notamment ceux avec l’extension TXT, et que vous devez y remplacer un terme spécifique, un script PowerShell peut s’avérer extrêmement pratique. Cette méthode vous évite d’avoir à ouvrir et modifier chaque fichier individuellement. Vous pouvez également adapter ce script à d’autres types de fichiers habituellement manipulés avec un éditeur de texte. Voici une méthode pour remplacer un mot dans plusieurs fichiers textes en une seule opération.
Procédure pour Remplacer un Terme dans des Fichiers Textes
Pour commencer, rassemblez tous les fichiers texte que vous souhaitez modifier dans un même répertoire. Le script parcourra uniquement ce répertoire spécifique et non l’ensemble de votre système. Par conséquent, il est crucial que tous les fichiers soient regroupés.
Ouvrez un nouveau document dans le Bloc-notes et copiez-y le code suivant :
Get-ChildItem 'Chemin-vers-les-fichiers*.txt' -Recurse | ForEach { (Get-Content $_ | ForEach { $_ -replace 'Mot-Original', 'Nouveau-Mot' }) | Set-Content $_ }
Ce script doit être adapté à votre situation. Premièrement, remplacez la partie « Chemin-vers-les-fichiers » par le chemin d’accès complet au répertoire où sont stockés vos fichiers texte. Ensuite, modifiez « Mot-Original » par le terme que vous souhaitez remplacer. Enfin, spécifiez le nouveau terme qui doit remplacer l’ancien en modifiant « Nouveau-Mot ». Par exemple, supposons que vous ayez des fichiers texte contenant le mot « Ancien ». Si vous désirez remplacer ce terme par « Nouveau », voici comment le script sera modifié :
Get-ChildItem 'C:UsersfatiwDesktopnotepad-files*.txt' -Recurse | ForEach { (Get-Content $_ | ForEach { $_ -replace 'Ancien', 'Nouveau' }) | Set-Content $_ }
Après avoir personnalisé le script, enregistrez-le avec l’extension .ps1. Assurez-vous de sélectionner « Tous les fichiers » dans le menu déroulant du type de fichier dans la boîte de dialogue d’enregistrement du Bloc-notes. Une fois enregistré, exécutez le script pour effectuer le remplacement en masse.
Si vous souhaitez appliquer cette même logique à des fichiers XML ou LOG, modifiez l’extension de fichier à la première ligne du script. Par exemple, si vous aviez initialement:
Get-ChildItem 'C:UsersfatiwDesktopnotepad-files*.txt'
Vous le changerez en:
Get-ChildItem 'C:UsersfatiwDesktopnotepad-files*.xml'
Il est important de noter que ce script fonctionne sur la base de la correspondance exacte des caractères, et non des mots entiers. Si vous tentez de remplacer « le » par « un », toutes les occurrences de « le », y compris celles au sein de mots comme « les » ou « celui », seront modifiées. C’est une limite de ce script. Pour contourner ce problème, vous pouvez utiliser Notepad++ qui offre une option pour la correspondance des mots entiers lors du remplacement.