Ce tutoriel informatique montre comment copier des fichiers et des dossiers récursivement avec la commande Windows PowerShell Copy-Item. En effet, elle permet de copier un grand nombre de fichiers et de dossiers en une seule commande. Windows PowerShell est un shell qui permet aux utilisateurs d’exécuter des commandes écrites dans le langage de Scripting Microsoft PowerShell.
L’utilisateur peut exécuter des scripts PS sur Windows, qui sont similaires aux fichiers batch des anciennes versions de Windows, c’est à dire les commandes MS-DOS. A noter que les commandes DOS et le PowerShell sont toutes les deux disponibles sur Windows 10 et Windows 11 par exemple.
Table des matières
Copier des fichiers récursivement avec des scripts PowerShell
Windows PowerShell est un interpréteur de commandes et un langage de script basé sur des tâches et reposant sur le .NET Framework. Windows PowerShell comprend un cmdlet (outil en ligne de commande) pour la copie de fichiers. Les cmdlets sont comme de petites commandes qui peuvent être combinées pour effectuer des tâches telles que la copie de fichiers. La cmdlet permettant de copier des fichiers s’appelle Copy-Item.
Il vous aidera à réduire le temps nécessaire à la copie de fichiers, à automatiser des tâches, à gérer les configurations du système, etc. La cmdlet Copy-Item peut être utilisée pour copier un ou plusieurs éléments d’un emplacement à un autre, par exemple d’un dossier du système de fichiers à un lecteur de CD, ou d’un dossier d’une arborescence du système de fichiers à un autre dossier de la même arborescence.
Windows PowerShell est conçu pour l’administration système, mais il peut également être utilisé à d’autres fins. Par exemple, il peut être utilisé pour des tâches telles que la copie récursive de plusieurs fichiers ou dossiers d’un emplacement à un autre.
Le script commence par définir l’emplacement du dossier source, puis copie tous les fichiers et dossiers de cet emplacement vers le dossier de destination.
1. Copie récursive de fichiers et de dossiers en PowerShell
Pour commencer, voici un cas pratique et simple, un dossier C:\WORK\Folder source avec deux sous dossiers:
- Folder contient
- file (1).txt
- file (2).txt
- file (3).txt
- Le dossier SubFolder_1, lui contient
- file (4).txt
- file (5).txt
- file (6).txt
Le but est de copier tous les fichiers et l’arborescence dans le dossier cible: C:\WORK\Target
Get-ChildItem C:\WORK\Folder -Recurse

Copier tous les fichiers des dossiers et sous dossiers avec la commande Copy-Item et l’option -Recurse.
Copy-Item -Path C:\WORK\Folder\ -Destination C:\WORK\Target -Recurse

Vérifier que les fichiers sont bien copiés dans le dossier cible. Le script copie bien tous les fichiers et les dossiers depuis le dossier WORK, y compris le dossier Folder.
Get-ChildItem C:\WORK\Target -Recurse

2. Copier les fichiers en récursif et forcer l’écrasement
Pour forcer la copie si un ou plusieurs dossiers ou fichiers existent déjà dans le dossier cible, utiliser l’option -Force.
Copy-Item -Path C:\WORK\Folder\ -Destination C:\WORK\Target -Recurse -Force

3. Sélectionner des extensions de types de fichiers spécifiques
Le script propose également une option permettant de copier uniquement des types de fichiers spécifiques, tels que *.docx ou *.jpg, ou un fichier spécifique portant un nom donné. Par exemple, pour forcer la copie des fichiers TXT uniquement et ignorer toutes les autres extensions, utiliser ce script:
Copy-Item -Path C:\WORK\Folder\ -Destination C:\WORK\Target -Recurse -Force -Filter "*.txt"
4. Exclure des fichiers de la copie avec PowerShell
Enfin, le script offre une option permettant d’exclure certains répertoires de la copie. Pour exclure des extensions de fichiers particulières, utiliser l’option PS -Exclude. Dans cet exemple, la copie est récursive et copie tous les fichiers sauf les fichiers Word avec une extension Docx.
Copy-Item -Path C:\WORK\Folder\ -Destination C:\WORK\Target -Recurse -Exclude "*.docx"
Toujours avec les commandes Windows, il est aussi possible d’effectuer les mêmes copies récursives en MS-DOS.
merci pour ce tutoriel vraiment enrichissant.
Salut Eric,
Merci pour le commentaire. En espérant que le tutoriel était instructif et utile.