Que vous ayez besoin de renommer un seul fichier ou un lot entier, PowerShell facilite la tâche. À l’aide de variables dans votre script PowerShell, vous pouvez renommer un ou plusieurs fichiers de manière séquentielle, remplacer les espaces par des traits de soulignement et modifier les extensions de fichiers. Dans ce didacticiel, nous découvrirons de nombreuses astuces pour renommer des fichiers à l’aide de scripts PowerShell sur Windows 10 et 11.
Pour copier, déplacer, renommer ou supprimer des fichiers et des dossiers avec PowerShell sous Windows, vous aurez besoin du chemin du fichier et du dossier cibles. Cliquez avec le bouton droit sur un fichier ou un dossier et sélectionnez Copier comme chemin dans le menu contextuel de Windows.
Voici un glossaire des applets de commande, paramètres, opérateurs et caractères génériques PowerShell utilisés dans ce didacticiel PowerShell.
- Obtenir-ChildItem: récupère une liste de tous les éléments (fichiers et dossiers) dans l’emplacement spécifié.
- « C:\Technastique »: Un exemple de chemin où se trouvent nos fichiers. Vous devrez le remplacer par le chemin souhaité.
- | (symbole du tuyau): Ce symbole est utilisé pour transmettre la sortie d’une applet de commande à une autre.
- PourEach-Objet: Cette applet de commande agit sur chaque élément d’une collection.
- Renommer l’élément: Applet de commande PowerShell pour renommer les fichiers.
- $_: Un espace réservé pour l’élément en cours de traitement.
- -NouveauNom: Ce paramètre précise le nouveau nom que nous souhaitons attribuer à vos fichiers.
- « NouveauNomFichier »: Ceci est un exemple du nouveau nom de fichier que nous souhaitons utiliser. Vous pouvez le remplacer par le nom de fichier souhaité.
- *.docx: Ceci est un exemple de caractère générique utilisé pour filtrer tous les fichiers d’un répertoire avec l’extension ‘.docx’.
- Horodatage: Obtenez l’horodatage des fichiers.
Ce didacticiel utilise des variables et la manipulation de chaînes pour renommer les fichiers. Avec un peu de pratique, vous apprendrez à organiser et à gérer des fichiers.
1. Renommer un seul fichier
PowerShell vous permet de renommer des fichiers individuels rapidement et efficacement. Vous pouvez utiliser le Rename-Item applet de commande suivie du nom actuel et du nouveau nom du fichier.
Rename-Item "OldFileName.ext" -NewName "NewFileName.ext"
Par exemple, si vous avez un fichier nommé « Commandes ADB » situé dans un dossier nommé « Technastic » sur votre bureau, ouvrez le dossier, ouvrez une fenêtre PowerShell avec le chemin du dossier et exécutez la commande suivante :

Pour renommer le même fichier depuis votre bureau, et non depuis le dossier où se trouve le fichier, vous devrez mentionner le chemin du fichier dans votre commande.
Rename-Item -Path "Path-of-the-file" -NewName "NewFileName.ext"
Accédez au fichier cible, cliquez dessus avec le bouton droit et sélectionnez Copier comme chemin. Lancez PowerShell sur votre bureau et exécutez la commande suivante :

Vous pouvez utiliser le Rename-Item applet de commande avec des paramètres tels que -PassThru, -WhatIfet -Force. Par exemple, la commande suivante vous donnera le résultat dans la fenêtre de commande.
Rename-Item "Path-of-the-file" -NewName "NewFileName.ext" -PassThru

Vous pouvez même renommer une clé de registre à l’aide de l’applet de commande Rename-Item.
Rename-Item -Path "HKLM:\Software\AngryBirds\Policies\Advertising" -NewName "Advertisement"
En utilisant le Move-Item cmdlet, vous pouvez renommer un fichier et le déplacer simultanément vers un emplacement défini.
Move-Item -Path "Document _1.docx" -Destination "D:\New folder\My Document _1.docx" -Force

2. Renommer tous les fichiers d’un dossier
Alors que Rename-Item est capable de renommer des fichiers uniques seul ; il a besoin de l’aide du Get-ChildItem applet de commande pour obtenir la liste des fichiers à renommer. De plus, il faut également ajouter le -Recurse, -Includeet -NewName paramètres à votre commande PowerShell pour renommer plusieurs fichiers.
Get-ChildItem -Path "Path-to-Folder" -Recurse -Include "*file-extension" | Rename-Item -NewName { $_.Name -replace "OldName","NewName" }
Par exemple, pour renommer tous les fichiers avec l’extension « .docx » dans le dossier nommé « Technastic » situé dans le lecteur C, vous devez utiliser la commande ci-dessus comme indiqué ci-dessous :

Si vous lancez PowerShell avec le chemin d’accès au dossier où se trouvent les fichiers cibles, vous pouvez supprimer -Path à partir de la commande ci-dessus.
Get-ChildItem -Recurse -Include "*file-extension" | Rename-Item -NewName { $_.Name -replace "OldName","NewName" }

3. Renommer séquentiellement par ordre croissant
PowerShell peut également vous aider à renommer les fichiers portant la même extension en nombre croissant ou séquentiellement. À l’aide de commandes, vous pouvez ajouter un compteur numérique avant ou après le nom du fichier tout en les renommant.
Ajouter un nombre croissant au début
Pour ajouter des nombres croissants tout en renommant les fichiers de manière séquentielle à l’aide de PowerShell, utilisez cette commande.
Get-ChildItem "Folder-Path" -Recurse -Include "*.extension" | ForEach-Object -Begin { $Counter = 1 } -Process { Rename-Item $_.FullName -NewName ("{0}_{1}" -f $Counter, $_.Name) ; $Counter++ }
Par exemple, si vous souhaitez renommer séquentiellement tous les fichiers avec l’extension « .docx » dans un dossier spécifique, ajoutez le chemin du dossier et l’extension du fichier dans la commande ci-dessus.

Le résultat sera comme ceci :
Ajouter des nombres croissants à la fin
De même, vous pouvez ajouter une numérotation à la fin des noms de fichiers tout en les renommant.
Get-ChildItem -Path "Folder-Path" -Recurse -Include "*.extension" | ForEach-Object -Begin { $Counter = 1 } -Process { Rename-Item $_ -NewName "NewFileName_$Counter.docx" ; $Counter++ }

Les fichiers seront renommés comme indiqué dans la capture d’écran.

4. Ajout d’extensions et de cas
Conserver le nom du fichier mais modifier son extension
Pour conserver les noms de fichiers intacts mais renommer uniquement l’extension de fichier, exécutez la commande suivante.
Get-ChildItem *.current-extension | Rename-Item -NewName { $_.Name -replace '.current-extension','.new-extension' }

La commande suivante avec le chemin du dossier fonctionnera n’importe où.
Get-ChildItem -Path "C:\Technastic" -Recurse -Include *.docx | Rename-Item -NewName { $_.Name -replace '.docx','.txt' }
Si vous souhaitez lister tous les fichiers avec une extension spécifique, utilisez le Get-Children applet de commande en premier. Vous pouvez ensuite utiliser la commande ci-dessus pour renommer l’extension actuelle en celle souhaitée. Enfin, vous pouvez vérifier à nouveau l’extension modifiée à l’aide de l’applet de commande Get-Children.
Renommer les fichiers et l’extension
Un script PowerShell peut rendre la tâche de renommage par lots beaucoup plus facile. Vous pouvez utiliser le script suivant pour renommer par lots plusieurs fichiers sous Windows à l’aide de PowerShell. Il vous permet non seulement de filtrer tous les fichiers avec une extension spécifique et de modifier leur nom et leur extension.
Ainsi, si vous souhaitez renommer tous les fichiers avec l’extension « .docx » en « Fichier.txt », essayez le script suivant.
Get-ChildItem -Path C:\Technastic\*.docx | ForEach-Object { Rename-Item $_ -NewName "File$i.txt" $i++ }
Changer tous les fichiers d’un dossier en minuscules
Pour renommer tous les fichiers d’un dossier avec une certaine extension en minuscules, utilisez le script suivant.
Get-ChildItem *.jpeg | Rename-Item -NewName { $_.Name.ToLower() }
Remplacement des espaces par des traits de soulignement
Si vos fichiers ont un espace dans leur nom (My Word Document), vous pouvez remplacer les espaces par des traits de soulignement (My_Word_Document) ou des traits d’union (My-Word-Document). Le script fonctionnera sur tous les fichiers du dossier cible, quelles que soient leurs extensions.
Get-ChildItem -Recurse -Force -Filter "* *" | Rename-Item -NewName { $_.Name -replace " ","_" }

Pour en savoir plus sur les puissantes fonctionnalités de PowerShell, vous pouvez vous référer à Le site officiel de Microsoft.