PowerShell 복사 항목 진행률

Migel Hewage Nimesha 2023년6월20일
PowerShell 복사 항목 진행률

파일 복사는 소스에서 대상으로 하나 이상의 파일을 전송하는 것과 관련된 정기적인 활동입니다. 소스와 대상은 동일한 호스트이거나 두 개의 서로 다른 호스트일 수 있습니다.

Copy-Item은 모든 PowerShell 사용자가 한 위치에서 다른 위치로 파일을 복사하는 데 사용하는 기본 cmdlet 중 하나입니다. Copy-Item의 유일한 단점은 작업 진행률을 진행률 표시줄 또는 백분율로 표시하지 않는다는 것입니다.

Start-BitsTransfer cmdlet은 작업할 파일이 많을 때 편리하며 좋은 점은 복사 작업의 진행률을 나타내는 진행률 표시줄을 표시한다는 것입니다.

이 문서에서는 소스에서 대상으로 파일을 복사하는 Start-BitsTransfer cmdlet에 중점을 둡니다.

Start-BitsTransfer를 사용하여 PowerShell에서 파일 복사

Start-BitsTransfer cmdlet은 번거로움 없이 소스에서 대상으로 하나 이상의 파일을 복사하도록 BITS 작업을 초기화합니다. 일반적으로 cmdlet이 BITS 작업을 초기화하면 PowerShell은 비대화형이 됩니다.

또한 cmdlet은 복사 기능을 개선하기 위해 몇 가지 선택적 인수를 허용합니다. 다음은 Start-BitsTransfer cmdlet의 일반 구문입니다.

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>]

TransferType 인수는 복사 작업의 방향을 지정하는 데 사용됩니다. 다운로드 또는 업로드가 될 수 있습니다.

거의 300개의 텍스트 파일이 있는 D 드라이브에 codes라는 폴더를 생성해 보겠습니다. 또한 copiedfiles라는 또 다른 빈 폴더를 만들 것입니다.

다음으로 Start-BitsTransfer 명령을 사용하여 소스 폴더 codes에서 대상 폴더 copiedfiles로 파일을 복사합니다. 기억해야 할 한 가지는 BitsTransfer 모듈을 미리 가져오는 것입니다.

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

출력:

Start-BitsTransfer

위의 그림에서 볼 수 있듯이 복사 작업이 시작되면 진행률 표시줄이 나타납니다. 이는 최종 사용자가 작업 진행 상황에 대한 아이디어를 얻는 데 매우 유용한 지표입니다.

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.