Progresso do Copy-Item do PowerShell

Progresso do Copy-Item do PowerShell

A cópia de arquivos é uma atividade regular que envolve transferir um ou mais arquivos da fonte para o destino. A fonte e o destino podem ser o mesmo host ou dois hosts diferentes.

O Copy-Item é um dos cmdlets básicos que todo usuário do PowerShell usa para copiar arquivos de um lugar para outro. A única desvantagem do Copy-Item é que ele não exibe o progresso da operação como uma barra de progresso ou porcentagem.

O cmdlet Start-BitsTransfer se torna útil quando você tem um grande número de arquivos para trabalhar, e o bom é que ele exibe uma barra de progresso que indica o progresso da operação de cópia.

Este artigo irá focar no cmdlet Start-BitsTransfer para copiar arquivos da fonte para o destino.

Use Start-BitsTransfer para Copiar Arquivos no PowerShell

O cmdlet Start-BitsTransfer inicializa um trabalho BITS para copiar um ou mais arquivos da fonte para o destino sem complicações. Normalmente, o PowerShell se torna não interativo quando o cmdlet inicializou o trabalho BITS.

Além disso, o cmdlet aceita vários argumentos opcionais para melhorar a funcionalidade de cópia. A seguir está a sintaxe genérica para o 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>]

O argumento TransferType é usado para especificar a direção da operação de cópia. Pode ser um download ou um upload.

Vamos criar uma pasta chamada codes na unidade D com quase 300 arquivos de texto. Além disso, estaremos criando outra pasta vazia chamada copiedfiles.

Em seguida, o comando Start-BitsTransfer é usado para copiar arquivos da pasta de origem codes para a pasta de destino copiedfiles. Uma coisa a lembrar é importar o módulo BitsTransfer com antecedência.

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

Saída:

Iniciar-BitsTransfer

Como você pode ver na figura acima, a barra de progresso aparece quando a operação de cópia começa. Este é um indicador muito útil para os usuários finais terem uma ideia do progresso da operação.

Está gostando dos nossos tutoriais? Inscreva-se no DelftStack no YouTube para nos apoiar na criação de mais vídeos tutoriais de alta qualidade. Inscrever-se
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.