PowerShell-Copy-Item-Fortschritt

Migel Hewage Nimesha 20 Juni 2023
PowerShell-Copy-Item-Fortschritt

Das Kopieren von Dateien ist eine regelmäßige Aktivität, bei der eine oder mehrere Dateien von der Quelle zum Ziel übertragen werden. Quelle und Ziel können derselbe Host oder zwei verschiedene Hosts sein.

Das Copy-Item ist eines der grundlegenden Cmdlets, das jeder PowerShell-Benutzer verwendet, um Dateien von einem Ort zum anderen zu kopieren. Der einzige Nachteil von Copy-Item ist, dass es den Fortschritt der Operation nicht als Fortschrittsbalken oder Prozentsatz anzeigt.

Das Cmdlet Start-BitsTransfer ist praktisch, wenn Sie mit einer großen Anzahl von Dateien arbeiten müssen, und das Gute daran ist, dass es einen Fortschrittsbalken anzeigt, der den Fortschritt des Kopiervorgangs anzeigt.

Dieser Artikel konzentriert sich auf das Cmdlet Start-BitsTransfer zum Kopieren von Dateien von der Quelle zum Ziel.

Verwenden Sie Start-BitsTransfer, um Dateien in PowerShell zu kopieren

Das Cmdlet Start-BitsTransfer initialisiert einen BITS-Job, um problemlos eine oder mehrere Dateien von der Quelle zum Ziel zu kopieren. Normalerweise wird die PowerShell nicht interaktiv, wenn das Cmdlet den BITS-Auftrag initialisiert hat.

Darüber hinaus akzeptiert das Cmdlet mehrere optionale Argumente, um die Kopierfunktion zu verbessern. Das Folgende ist die generische Syntax für das 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>]

Mit dem Argument TransferType wird die Richtung des Kopiervorgangs angegeben. Es kann ein Download oder ein Upload sein.

Lassen Sie uns einen Ordner namens codes im Laufwerk D mit fast 300 Textdateien erstellen. Außerdem erstellen wir einen weiteren leeren Ordner mit dem Namen copyfiles.

Als nächstes werden mit dem Befehl Start-BitsTransfer Dateien aus dem Quellordner codes in den Zielordner copiedfiles kopiert. Denken Sie daran, das Modul BitsTransfer vorab zu importieren.

Import-Module BitsTransfer
Start-BitsTransfer -Source "D:\codes\*.txt" -Destination "D:\copiedfiles\" -TransferType Download

Ausgang:

Start-BitsTransfer

Wie Sie in der obigen Abbildung sehen können, erscheint der Fortschrittsbalken, wenn der Kopiervorgang beginnt. Dies ist ein sehr nützlicher Indikator für die Endbenutzer, um sich ein Bild über den Fortschritt des Vorgangs zu machen.

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.