Copia-Elemento di PowerShell Progresso

La copia di file è un’attività regolare che implica il trasferimento di uno o più file dalla fonte alla destinazione. La fonte e la destinazione possono essere lo stesso host o due host diversi.
Il Copy-Item
è uno dei cmdlet di base che ogni utente di PowerShell utilizza per copiare file da un luogo all’altro. L’unico svantaggio di Copy-Item
è che non mostra il progresso dell’operazione come una barra di avanzamento o una percentuale.
Il cmdlet Start-BitsTransfer
diventa utile quando hai un gran numero di file con cui lavorare, e la cosa buona è che mostra una barra di avanzamento che indica il progresso dell’operazione di copia.
Questo articolo si concentrerà sul cmdlet Start-BitsTransfer
per copiare file dalla sorgente alla destinazione.
Usa Start-BitsTransfer
per Copiare File in PowerShell
Il cmdlet Start-BitsTransfer
inizializza un lavoro BITS per copiare uno o più file dalla fonte alla destinazione senza problemi. Di solito, PowerShell diventa non interattivo quando il cmdlet ha inizializzato il lavoro BITS.
Inoltre, il cmdlet accetta diversi argomenti opzionali per migliorare la funzionalità di copia. La seguente è la sintassi generica per il 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’argomento TransferType
è utilizzato per specificare la direzione dell’operazione di copia. Può essere un download o un upload.
Creiamo una cartella chiamata codes
nell’unità D
con quasi 300 file di testo. Inoltre, creeremo un’altra cartella vuota chiamata copiedfiles
.
Successivamente, il comando Start-BitsTransfer
viene utilizzato per copiare file dalla cartella sorgente codes
alla cartella di destinazione copiedfiles
. Una cosa da ricordare è di importare il modulo BitsTransfer
in anticipo.
Import-Module BitsTransfer
Start-BitsTransfer -Source "D:\codes\*.txt" -Destination "D:\copiedfiles\" -TransferType Download
Output:
Come puoi vedere nella figura sopra, la barra di avanzamento appare quando inizia l’operazione di copia. Questo è un indicatore molto utile per gli utenti finali per avere un’idea del progresso dell’operazione.
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.