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