PowerShell est un Shell puissant disponible sur Windows 11 et Windows 10.
Il existe des commandes et cmdlet pour copier et déplacer des fichiers avec Copy-Item et Move-Item.
Dans ce tutoriel, je vous donne plusieurs exemples pour utiliser les commandes PowerShell afin de copier ou déplacer des fichiers avec PowerShell.
Table des matières
Comment copier avec PowerShell
Copier un fichier
L’utilisation du cmdlet Copy-Item est assez identique à la commande CMD copy.
Voici la syntaxe pour copier un fichier où on spécifie le chemin du fichier source et le dossier de destination :
Copy-Item "nomfichier" "C:\dossier\destination\dossier"
ou
Copy-Item "nomfichier" -Destination "C:\dossier\destination\dossier"
Par défaut, PowerShell n’affiche pas les fichiers copiés. Pour obtenir la liste, ajoutez -PassThru :
Copy-Item "latencymon.jpg" "C:\Users\Mak\Desktop" -PassThru
Pour copier un fichier en renommant le fichier de destination, spécifiez le nom du fichier :
Copy-Item "nomfichier" -Destination "C:\dossier\destination\dossier\nouveau-nom-fichier"
On peut aussi spécifier un UNC pour copier des fichiers par le réseau.
Par exemple pour copier le fichier \\PC1\Partage\fichier.txt vers \\PC2\Partage2\fichier2.txt.
Copy-Item "\\PC1\Partage\fichier.txt" -Destination "\\PC2\Partage2\fichier2.txt"
Copier un dossier en recursif avec arborescence complète
Pour copier les dossiers en récursif et ainsi copier l’arborescence, on utilise l’option -Recurse :
Copy-Item -Path "C:\Logfiles\*" -Destination "C:\Drawings" -Recurse
On peut aussi utiliser Get-ChildItem que l’on pipe vers Copy-Item.
Par exemple pour copier le dossier C:\Dossier vers D:\Dossier1
Get-ChildItem -Path C:\Dossier\ | Copy-Item -Destination C:\Dossier1 -Recurse
Ainsi, on peut aussi filtrer sur l’extension de fichiers.
Pour copier tous les fichiers avec l’extension png vers le dossier C:\Users\Mak\Desktop.
Get-ChildItem -Path ".\*.png" -Recurse | Copy-Item -Destination "C:\Users\Mak\Desktop"
Copier un fichier ou dossier sur un ordinateur distant
Tout d’abord, on crée une session sur l’ordinateur distant nommé PC01 avec les informations d’identification de MaK\Utilisateur01 que l’on stocke dans une variable $Session.
Ensuite on utilise cette session pour copier le fichier local C:\Dossier\journal.log vers le dossier distant D:\Dossier
$Session = New-PSSession -ComputerName "PC01" -Credential "MaK\Utilisateur01"
Copy-Item "C:\Dossier\journal.log" -Destination "D:\Dossier\" -ToSession $Session
En suivant le même principal, on peut aussi copier l’intégralité d’un dossier local vers un ordinateur distant.
$Session = New-PSSession -ComputerName "PC01" -Credential "MaK\Utilisateur01"
Copy-Item "C:\Dossier\" -Destination "D:\Dossier\" -ToSession $Session
Enfin, pour copier l’arborescence complète, ajoutez –Recurse :
$Session = New-PSSession -ComputerName "PC01" -Credential "MaK\Utilisateur01"
Copy-Item "C:\Dossier\" -Destination "D:\Dossier\" -ToSession $Session -Recurse
Comment déplacer avec PowerShell
Pour déplacer des fichiers avec PowerShell, on utilise le cmdlet Move-Item.
Ce dernier fonctionne exactement comme Copy-Item.
Ainsi, on peut exactement utiliser les mêmes exemples que donnés précédemment.
Move-Item Image.jpg C:\Downloads
Mais également avec Get-ChildItem :
Get-ChildItem -Path ".\*.jpg" -Recurse | Move-Item -Destination "D:\Downloads"
Liens
- Comment copier des fichiers en invite de commandes (CMD)
- Comment copier ou déplacer des fichiers avec PowerShell
- Robocopy : Sauvegarde de Windows
- Synchronisation de fichiers et dossiers sur Windows
- Sauvegarder ses données personnelles sur Windows 10
- rsync : synchroniser, copier des fichiers à distance ou locaux
- SCP, WinSCP, PSCP : Transférer des fichiers Linux et Windows