PowerShell Start-Sleep 명령: 구문, 예

2021년 8월 26일 7353 견해 파워쉘 슬립

PowerShell 스크립트를 잠시 지연해야 합니까? 그런 다음 PowerShell Start-Sleep 명령이 필요합니다.

이 가이드는 PowerShell 절전에 대해 알아야 할 모든 것을 알려줍니다. Start-Sleep 명령의 구문을 설명하는 것으로 가이드를 시작합니다.

그런 다음 가이드의 마지막 섹션에서 Start-Sleep 명령을 사용하는 방법에 대한 9가지 실제 사례를 공유합니다.

게시물 주제 찾아보기

Powershell 절전: Start-Sleep Cmdlet의 구문

Powershell 절전: Start-Sleep Cmdlet의 구문

다음은 Start-Sleep Cmdlet의 구문입니다.

|_+_| |_+_|

이 cmdlet에는 두 개의 매개 변수가 있습니다.

밀리초 – 시간(Int32)을 밀리초 단위로 지정하는 데 사용합니다. PowerShell은 입력한 밀리초 동안 지연됩니다.

예를 들어 스크립트를 300000밀리초(5분) 동안 지연시키려면 아래 명령을 실행합니다.

|_+_|

: 지연 시간을 초 단위로 지정할 수도 있습니다. 이렇게 하려면 다음을 사용하십시오. Start-Sleep 명령의 매개변수입니다.

마지막 예제를 계속하려면 스크립트를 5분(300초) 동안 지연시키기 위해 아래 명령을 실행합니다.

|_+_|

Powershell 절전 예제

이 섹션에는 Powershell 절전을 사용하여 카운트다운 등과 같은 복잡한 작업을 해결하는 방법에 대한 몇 가지 예가 있습니다.

밀리초, 1초(또는 그 이하), 분 또는 1시간 동안 PowerShell 절전 모드를 설정하는 방법

지난 섹션에서 설명했듯이 Start-Sleep 명령에는 아래와 같이 두 가지 구문이 있습니다.

|_+_|

PowerShell이 ​​30000밀리초(30초) 동안 지연되도록 설정하려면 아래 명령 중 하나를 사용합니다.

|_+_|

또한 밀리초의 매개변수를 사용하여 절전 모드를 1초 미만으로 설정할 수 있습니다. 예를 들어 PowerShell 스크립트를 0.0005초(0.5밀리초) 동안 지연시키려면 아래 명령 중 하나를 사용할 수 있습니다.

|_+_|

이 하위 섹션의 세 번째 예에서는 PowerShell 절전 모드를 1시간 동안 설정하려고 합니다. 여기서 가장 좋은 방법은 Start-Sleep 명령의 Seconds 매개변수를 사용하는 것입니다.

하지만 그렇게 하려면 1시간을 초로 변환해야 합니다. 검색하면 쉽게 할 수 있어요 1시간을 로 변환 구글에서.

결과는 3600초입니다. 따라서 PowerShell 스크립트를 1시간 지연하려면 아래 PowerShell Start-Sleep 명령을 사용하십시오.

|_+_|

아래 스크린샷에서 볼 수 있듯이 지연(1시간)이 끝날 때까지 PowerShell 명령 프롬프트를 사용할 수 없습니다.

밀리초, 1초(또는 그 이하), 분 또는 1시간 동안 PowerShell 절전 모드를 설정하는 방법

마찬가지로 아래 명령을 사용하여 PowerShell을 5분 동안 절전 모드로 설정할 수 있습니다.

|_+_| 5분은 300초와 같습니다.

Powershell 절전을 사용하여 카운트다운하는 방법(시작 카운트 기능)

나는 카운트 다운 또는 카운트 업하는 PowerShell 함수(Start-Count)를 작성했습니다. 함수에는 4개의 매개변수가 있습니다.

카운트다운 : 이 매개변수를 지정하면 Start-Count는 지정된 숫자부터 카운트다운합니다.
CountUp: 또는 카운트업 매개변수는 Start-Count가 지정된 숫자에서 위쪽으로 카운트하도록 합니다.
CountFrom : 달리 카운트다운 그리고 카운트업 , 이 매개변수에는 입력이 필요합니다. 이를 사용하여 카운트다운 또는 카운트업할 숫자를 지정합니다.
카운트 : 이 매개변수를 사용하여 계산할 숫자(아래 또는 위로)를 지정합니다.

시작 카운트 기능을 다운로드하고 사용하려면 아래 단계를 따르십시오.

  1. Start-Count.zip 다운로드를 클릭합니다.
  2. 그런 다음 Start-Count.zip의 압축을 풉니다. 압축을 풀면 Start-Count라는 폴더가 표시됩니다. 이 폴더에는 PowerShell 모듈이 포함되어 있습니다.
  3. Start-Count 폴더를 PowerShell 모듈 폴더에 복사합니다. 이것은 C:Usersprofile_nameDocumentsWindowsPowerShellModules에 있습니다.
  4. 아래 명령을 사용하여 다운로드한 모듈 파일의 차단을 해제합니다.
|_+_|
  1. 마지막으로 PowerShell을 열고 Start-Count를 실행합니다. 첫 번째 예에서는 10에서 0으로 카운트다운하고 싶습니다.
|_+_|

명령은 10부터 0에 도달할 때까지 카운트다운을 시작합니다. 아래 스크린샷을 참조하십시오…

Powershell 절전을 사용하여 카운트다운하는 방법(시작 카운트 기능)

이 두 번째 명령에서 나는 5에서 40까지 세고 있습니다…

|_+_|

임의의 시간에 Powershell 절전 모드를 사용하는 방법

Start-Sleep을 실행하면 PowerShell은 지정된 시간의 맨 위에서부터 카운트다운합니다. 예를 들어 Start-Sleep을 실행하고 20초를 지정하면 PowerShell은 1초씩 카운트다운합니다.

그러나 카운트다운을 무작위로 지정하려면(즉, 2, 5, 6씩 카운트다운) Start-Sleep 및 Get-Random을 결합해야 합니다.

예를 들어 PowerShell이 ​​1초에서 10초 사이의 간격으로 절전 모드로 전환되도록 하려면 아래 명령을 실행합니다.

|_+_|

임의의 지연으로 실행하려는 명령을 실행하기 전에 이 명령을 배치하십시오...

특정 시간까지 Powershell 절전 모드를 실행하는 방법

일부 PowerShell 스크립팅 시나리오에서는 특정 시간까지 절전 모드를 설정할 수 있습니다. 예를 들어 절전 모드를 30초로 설정할 수 있습니다.

이를 달성하려면 다음이 필요합니다. 하다 , 까지 고리.

이 예에서는 타이머가 30초에 도달할 때까지 PowerShell이 ​​절전 모드로 전환되기를 원합니다.

먼저 시작 시간과 종료 시간을 설정합니다. 시작 시간은 내가 계산하려는 시간입니다.

쉽게 하기 위해 0부터 셉니다.

우선, 내가 계산하고 싶은 곳을 설정합니다....

|_+_|

그런 다음 계산할 위치를 설정합니다...

|_+_|

이제 사용하겠습니다. 하다 , 까지 아래 스크립트와 같이 Start-Sleep을 사용하여 루프를 실행합니다.

각 명령을 한 번에 하나씩 실행 |_+_| PowerShell에서 실행할 수 있도록 전체 Do, When 스크립트를 한 줄에 넣었습니다. 스크립트를 실행하려면 파워쉘 ISE , 아래와 같이 작성할 수 있습니다. |_+_|

그러나 PowerShell에서 스크립트를 실행하려면 아래의 각 명령을 실행하십시오.

|_+_|

명령은 1초 간격으로 0에서 30까지 계산합니다. 아래 스크린샷을 참조하십시오…

명령 전후에 PowerShell 절전 모드를 추가하는 방법

이것은 매우 간단한 예입니다. PowerShell 명령 뒤에 지연을 추가하려면 PowerShell 명령 뒤에 Start-Sleep 명령을 추가합니다.

예를 들어 Get-Process 실행 후 5분 대기를 추가하려면 아래 명령을 사용합니다.

|_+_|

아래 스크린샷과 같이 Get-Process 명령이 완료되면 PowerShell은 프롬프트로 돌아가지 않습니다. 이것은 5분(300초) 지연이 있음을 나타냅니다.

명령 전후에 PowerShell 절전 모드를 추가하는 방법

위의 예와 반대로 PowerShell 절전을 사용하여 지연을 추가한 다음 명령을 실행할 수도 있습니다.

이번에는 명령 뒤에 Start-Sleep을 추가하는 대신 명령 앞에 추가합니다…

|_+_|

이번에는 명령이 실행되기 전에 지연이 시작됩니다.

PowerShell 절전을 사용하여 스크립트를 재시도하는 방법

이에 대한 해결책을 찾으려고 하는 과정에서 다음에서 제출한 기존 스크립트를 찾았습니다. stackoverflow.com 기고자(Ansgar Wiechers).

Ansgar는 아래 함수를 만들었습니다. 그는 그것을 재시도 명령이라고 불렀습니다. PowerShell에서 승인한 동사를 사용하기 위해 함수를 Redo-Command로 변경했습니다.

그 외에는 Ansgar Wiechers에게 전적으로 감사드립니다. 전체 스크립트는 다음과 같습니다.

|_+_|

글쎄요, 독자들이 다운로드하여 사용할 수 있도록 스크립트도 업로드했습니다. 기능을 다운로드하여 사용하려면 다음 단계를 따르세요.

  1. Redo-Command.zip 다운로드를 클릭합니다. 그런 다음 다운로드한 zip 파일의 압축을 풉니다.
  2. 압축을 푼 폴더인 Redo-Command를 c:usersDocumentsWindowsPowerShellModules에 복사합니다.
  3. 그런 다음 PowerShell을 열고 아래 명령을 실행합니다. 이 명령은 파일의 잠금을 해제합니다. 이렇게 하면 파일이 인터넷에서 다운로드되었음을 지속적으로 경고하는 PowerShell이 ​​중지됩니다.
|_+_|
  1. 마지막으로 PowerShell 기능 Sleep을 사용하여 스크립트를 다시 시도하려면 아래와 같은 명령을 실행하십시오.
|_+_|

기본 재시도는 5회입니다. 그러나 사용자 지정 재시도를 추가하려면 아래와 같이 Maximum 매개변수를 사용하십시오.

|_+_|

마지막 명령에서 오류가 반환되기 전에 8번 재시도합니다.

파일이 존재할 때까지 PowerShell 스크립트를 절전 모드로 전환하는 방법

파일이 존재할 때까지 PowerShell 스크립트를 절전 모드로 전환하려면 While 루프에서 Test-Path 및 Start-Sleep을 사용해야 합니다.

다음은 필요한 PowerShell While 루프의 일반 구문입니다.

|_+_|

예를 들어 D 드라이브에 eventlog.txt라는 파일이 있는지 확인하겠습니다. 파일을 사용할 수 있을 때까지 스크립트가 진행되지 않습니다.

다음은 스크립트입니다...

|_+_|

Test-Path 명령은 파일이 존재하는지 확인합니다. 파일이 존재하면 Test-Path는 True를 반환합니다.

반대로 파일이 존재하지 않으면 Test-Path는 False를 반환합니다. 추가하여 ! Test-Path 전에 결과를 뒤집었습니다.

따라서 파일이 존재하지 않는 경우 while 루프의 결과는 True입니다.

본질적으로 명령이 말하는 것은 다음과 같습니다. Test-Path d:eventlog.txt가 다음과 같으면 거짓 (파일이 존재하지 않음), 반환 진실 while 루프의 경우. 또한 while 조건이 있는 한 진실 , Start-Sleep 10 명령을 실행합니다(10초 동안 지연).

그런 다음 while 루프의 조건 부분으로 돌아가 파일이 있는지 확인합니다. 그렇지 않은 경우 10초 더 지연합니다. 이 루프는 파일이 존재할 때까지 계속됩니다. 그런 다음 루프가 중단되고 PowerShell이 ​​다시 시작됩니다.

이 스크립트를 테스트하기 위해 먼저 실행하겠습니다(d:eventlog.txt 파일 제외).

아래 스크린샷에서 볼 수 있듯이 파일이 존재하지 않기 때문에 while 루프가 계속됩니다.

파일이 존재할 때까지 PowerShell 스크립트를 절전 모드로 전환하는 방법

루프를 끊기 위해 파일을 생성하겠습니다. 파일을 생성하면 while 루프가 중단되고 PowerShell이 ​​계속됩니다(아래 스크린샷 참조).

Ctrl + C를 누를 때까지 PowerShell을 영원히 잠자기 상태로 만드는 방법

Ctrl + C를 누를 때까지 중단하고 싶지 않은 명령을 실행하는 경우 while 루프가 필요합니다.

예를 들어, PowerShell 명령 – Get-EventLog -LogName Application – 영원히(Ctrl + C를 누를 때까지 계속) 실행하려면 아래 명령을 사용하십시오.

|_+_|

명령이 하는 일은 다음과 같습니다. while 루프의 {} 부분에 있는 명령이 참인 한 계속 실행합니다.

실행 중인 프로세스가 완료될 때까지 PowerShell 절전 방법

이 예는 마지막 예와 정반대입니다. 마지막 예에서는 프로세스가 계속 실행되도록 했습니다.

그러나 이 예에서는 프로세스가 완료될 때까지 PowerShell이 ​​절전 모드로 전환되기를 원합니다. 프로세스가 완료되면 절전 모드가 종료됩니다.

이전 예제와 마찬가지로 while 루프가 작업을 수행합니다. 그러나 while 루프가 구성되는 방식은 다릅니다.

이번에는 while 루프의 () 블록에 명령어를 넣어봤습니다. 그러나 나는 추가해야합니다! 명령 전에.

여기 내 예가 있습니다 ...

|_+_|

이 명령은 (Get-EventLog -LogName Application)이 true인 동안 PowerShell을 5초 동안 잠자기 상태로 만듭니다. 절전 모드 후 PowerShell은 명령(Get-EventLog -LogName Application)이 여전히 실행 중인지 확인합니다.

여전히 실행 중이면 5초 동안 절전을 시작합니다. 이 루프는 명령이 완료될 때까지 계속됩니다...

이 가이드가 이해하기 쉽고 도움이 되었기를 바랍니다! 가이드가 도움이 되었다면 이 게시물이 도움이 되었나요?에 예에 투표하세요. 아래에.

이 페이지 끝에 있는 LEAVE A REPLY를 사용하여 자세한 피드백을 제공할 수도 있습니다.

마지막으로 다른 PowerShell 가이드가 도움이 될 수 있습니다. 더 통찰력 있는 PowerShell 가이드를 읽으려면 PowerShell 및 CMD 설명 페이지를 방문하세요.

이동하기 전에 한 가지 더, PowerShell을 배우고 싶다면 PowerShell 자습서 페이지를 북마크에 추가할 수 있습니다.