Menu Fermer

Comment copier ou déplacer des fichiers avec PowerShell

PowerShell est un Shell puissant disponible sur Windows 7, 8 et 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 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éé 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 utiliser exactement les mêmes exemples que donnés précédemment.

Move-Item Image.jpg C:\Downloads

Mais aussi avec Get-ChildItem :

Get-ChildItem -Path ".\*.jpg" -Recurse | Move-Item -Destination "D:\Downloads"