Progreso del elemento de copia de PowerShell
La copia de archivos es una actividad habitual que implica la transferencia de uno o más archivos desde el origen al destino. El origen y el destino pueden ser el mismo host o dos hosts diferentes.
El Copy-Item
es uno de los cmdlets básicos que todo usuario de PowerShell utiliza para copiar archivos de un lugar a otro. El único inconveniente de Copy-Item
es que no muestra el progreso de la operación como una barra de progreso o un porcentaje.
El cmdlet Start-BitsTransfer
se vuelve útil cuando tiene una gran cantidad de archivos con los que trabajar, y lo bueno es que muestra una barra de progreso que indica el progreso de la operación de copia.
Este artículo se centrará en el cmdlet Start-BitsTransfer
para copiar archivos desde el origen al destino.
Use Start-BitsTransfer
para copiar archivos en PowerShell
El cmdlet Start-BitsTransfer
inicializa un trabajo BITS para copiar uno o más archivos desde el origen al destino sin problemas. Por lo general, PowerShell deja de ser interactivo cuando el cmdlet ha inicializado el trabajo de BITS.
Además, el cmdlet acepta varios argumentos opcionales para mejorar la funcionalidad de copia. La siguiente es la sintaxis genérica del 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>]
El argumento TransferType
se utiliza para especificar la dirección de la operación de copia. Puede ser una descarga o una carga.
Vamos a crear una carpeta llamada códigos
en la unidad D
con casi 300 archivos de texto. Además, crearemos otra carpeta vacía llamada copiedfiles
.
A continuación, el comando Start-BitsTransfer
se usa para copiar archivos desde la carpeta de origen codes
a la carpeta de destino copiedfiles
. Una cosa para recordar es importar el módulo BitsTransfer
por adelantado.
Import-Module BitsTransfer
Start-BitsTransfer -Source "D:\codes\*.txt" -Destination "D:\copiedfiles\" -TransferType Download
Producción:
Como puede ver en la figura anterior, la barra de progreso aparece cuando comienza la operación de copia. Este es un indicador muy útil para que los usuarios finales se hagan una idea del progreso de la operación.
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.