PowerShell의 Start-Sleep cmdlet 또는 sleep
별칭은 단일 목적을 가진 간단한 cmdlet입니다. 스크립트를 일시 중지합니다. 실행되는 경우 PowerShell 콘솔에서 콘솔에서 실행되는 스크립트 또는 PowerShell ISE에서 PowerShell 세션에서 단순히 스크립트 또는 모듈을 일시 중지합니다. 필요한 시간(초 또는 밀리초)이 경과할 때까지.
이 cmdlet은 간단하지만 우리 스크립터들이 잘 작성된 스크립트를 만들 수 있게 여러 가지 다른 방법으로 적용할 수 있습니다.
Start-Sleep 사용
Start-Sleep cmdlet을 사용하는 것은 굉장히 쉽습니다. 결국, 이 cmdlet에는 매개변수가 두 개밖에 없기 때문입니다! 다른 환경 프로세스가 실행될 때까지 스크립트를 일시 중지하려고 한다고 가정해 봅시다. 해당 프로세스는 약 10초가 걸리며, 외부 이벤트가 완료되기 전에 스크립트가 계속 실행되지 않도록 확실하게 하려면.
스크립트를 10초 동안 일시 중지하려면 Start-Sleep -Second 10
을 사용하면 됩니다. 더 세밀하게 설정하고 싶다면 밀리초 단위로 시간을 지정할 수도 있습니다. Start-Sleep -Milliseconds 10000.
예시 문맥
이 Start-Sleep cmdlet의 가장 일반적인 사용 중 하나는 while
루프 내에서 사용하는 것입니다. while
루프는 다른 일이 발생하는 동안 코드를 실행하는 PowerShell의 구조입니다. while
루프의 가장 좋은 사용 사례 중 하나는 다른 일이 발생할 때까지 기다리는 것입니다. 직접 이 cmdlet을 실행하는 것보다 프로세스가 얼마나 오래 걸릴지 추측하는 대신.
예를 들어, 어떤 파일이 폴더에 나타날 때까지 기다려야 할 수도 있습니다. 아마도 그 파일은 다른 소프트웨어에 의해 거기에 드롭됩니다. 파일이 폴더에 들어가면 해당 파일에 대해 일부 코드를 실행해야 합니다. 이 예는 while
루프와 Start-Sleep
의 우수한 예입니다.
아래 예제에서 내 코드는 C:\File.txt
파일이 나타날 때까지 기다립니다. 이것이 스크립트에 있다면, 이 이벤트가 발생할 때까지 스크립트가 일시 중지될 것입니다. 기술적으로, 이를 수행하기 위해 Start-Sleep
가 필요하지 않지만, 사용하지 않으면 이 코드가 컴퓨터를 마비시킬 수 있습니다. 이 파일을 지속적으로 확인할 수 있는 속도는 PowerShell에 달려 있습니다!
우리는 이 파일을 매 .0455ms마다 확인할 필요가 없습니다. 대신에 그 확인을 감소시키고 테스트를 5초마다만 수행해야 합니다. while 루프의 속도를 줄이는 것은 Start-Sleep
명령어를 훌륭하게 활용하는 것입니다.
이 cmdlet을 사용하여 멋진 진행률 표시줄이 있는 예제를 보려면, 여기를 확인하세요.