Progress de la copie d'éléments PowerShell

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 :

Start-BitsTransfer

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.

Vous aimez nos tutoriels ? Abonnez-vous à DelftStack sur YouTube pour nous aider à créer davantage de tutoriels vidéo de haute qualité. Abonnez-vous
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

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.