Progress de la copie d'éléments PowerShell

La copie de fichiers est une activité régulière consistant à transférer un ou plusieurs fichiers de la source à la destination. La source et la destination peuvent être le même hôte ou deux hôtes différents.
Le Copy-Item
est l’un des cmdlets de base que chaque utilisateur de PowerShell utilise pour copier des fichiers d’un endroit à un autre. Le seul inconvénient de Copy-Item
est qu’il ne montre pas la progression de l’opération sous forme de barre de progression ou de pourcentage.
Le cmdlet Start-BitsTransfer
devient pratique lorsque vous avez un grand nombre de fichiers à traiter, et la bonne chose est qu’il affiche une barre de progression qui indique l’avancement de l’opération de copie.
Cet article se concentrera sur le cmdlet Start-BitsTransfer
pour copier des fichiers de la source à la destination.
Utiliser Start-BitsTransfer
pour copier des fichiers dans PowerShell
Le cmdlet Start-BitsTransfer
initialise un travail BITS pour copier un ou plusieurs fichiers de la source à la destination sans tracas. En général, PowerShell devient non interactif lorsque le cmdlet a initialisé le travail BITS.
En outre, le cmdlet accepte plusieurs arguments optionnels pour améliorer la fonctionnalité de copie. Voici la syntaxe générique pour le cmdlet Start-BitsTransfer
.
Start-BitsTransfer
[-Asynchronous]
[-Dynamic]
[-CustomHeadersWriteOnly]
[-Authentication <String>]
[-Credential <PSCredential>]
[-Description <String>]
[-HttpMethod <String>]
[[-Destination] <String[]>]
[-DisplayName <String>]
[-Priority <String>]
[-TransferPolicy <CostStates>]
[-ACLFlags <ACLFlagValue>]
[-SecurityFlags <SecurityFlagValue>]
[-UseStoredCredential <AuthenticationTargetValue>]
[-ProxyAuthentication <String>]
[-ProxyBypass <String[]>]
[-ProxyCredential <PSCredential>]
[-ProxyList <Uri[]>]
[-ProxyUsage <String>]
[-RetryInterval <Int32>]
[-RetryTimeout <Int32>]
[-MaxDownloadTime <Int32>]
[-Source] <String[]>
[-Suspended]
[-TransferType <String>]
[-CustomHeaders <String[]>]
[-NotifyFlags <NotifyFlagValue>]
[-NotifyCmdLine <String[]>]
[-CertStoreLocation <CertStoreLocationValue>]
[-CertStoreName <String>]
[-CertHash <Byte[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
L’argument TransferType
est utilisé pour spécifier la direction de l’opération de copie. Cela peut être un téléchargement ou un téléversement.
Créons un dossier appelé codes
dans le lecteur D
avec près de 300 fichiers texte. De plus, nous allons créer un autre dossier vide appelé copiedfiles
.
Ensuite, la commande Start-BitsTransfer
est utilisée pour copier des fichiers du dossier source codes
vers le dossier de destination copiedfiles
. Une chose à retenir est d’importer le module BitsTransfer
à l’avance.
Import-Module BitsTransfer
Start-BitsTransfer -Source "D:\codes\*.txt" -Destination "D:\copiedfiles\" -TransferType Download
Sortie :
Comme vous pouvez le voir dans la figure ci-dessus, la barre de progression apparaît lorsque l’opération de copie commence. C’est un indicateur très utile pour les utilisateurs finaux pour avoir une idée de la progression de l’opération.
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.