Comment copier ou déplacer des fichiers avec PowerShell

malekalmorte

Création :

8 juillet 2021

Modification :

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.

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"
Copier un fichier en PowerShell

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
Copier un fichier en PowerShell

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
Copier un dossier en recursif avec arborescence complète

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"

A propros de malekalmorte

malekal-site-logo-150

Passionné par l'informatique depuis très jeune, j'aide les internautes sur les forums depuis 2005 pour résoudre leurs tracas informatiques.
Je vous propose par la même occasion ce site avec de nombreux tutoriels pour vous aider aussi à résoudre de manière autonome les problèmes informatiques du quotidien.