Write-Progress
Windows PowerShell 명령 창 내에 진행률 표시줄을 표시합니다.
구문
Write-Progress [-Activity] <string> [-Status] <string> [[-Id] <int>] [-Completed] [-CurrentOperation <string>] [-ParentId <int>] [-PercentComplete <int>] [-SecondsRemaining <int>] [-SourceId <int>] [<CommonParameters>]
설명
Write-Progress cmdlet은 Windows PowerShell 명령 창에 실행 중인 명령이나 스크립트의 상태를 보여 주는 진행률 표시줄을 표시합니다. 표시줄이 반영하는 표시기 및 진행률 표시줄 위/아래에 나타나는 텍스트를 선택할 수 있습니다.
매개 변수
-Activity <string>
상태 표시줄 위 제목의 첫 번째 텍스트 줄을 지정합니다. 이 텍스트는 진행률이 보고되는 있는 작업을 설명합니다.
필수 여부 |
true |
위치 |
1 |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-Completed
진행률 표시줄이 표시되는지 여부를 나타냅니다. 이 매개 변수를 생략하면 Write-Progress는 진행률 정보를 표시합니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-CurrentOperation <string>
진행률 표시줄 아래의 텍스트 줄을 지정합니다. 이 텍스트는 현재 발생하고 있는 작업을 설명합니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-Id <int>
각 진행률 표시줄을 다른 진행률 표시줄과 구별하는 ID를 지정합니다. 하나의 명령으로 여러 개의 진행률 표시줄을 만들 때 이 매개 변수를 사용합니다. 진행률 표시줄의 ID가 같으면 일렬로 표시되지 않고 겹쳐서 표시됩니다.
필수 여부 |
false |
위치 |
3 |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-ParentId <int>
현재 작업의 상위 작업을 식별합니다. 현재 작업에 상위 작업이 없으면 -1 값을 사용합니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-PercentComplete <int>
완료된 작업의 비율(백분율)을 지정합니다. 완료율을 알 수 없거나 해당 사항이 없으면 -1 값을 사용합니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-SecondsRemaining <int>
작업이 완료될 때까지 남아 있는 예상 시간(초)을 지정합니다. 남아 있는 시간(초)을 알 수 없거나 해당 사항이 없으면 -1 값을 사용합니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-SourceId <int>
레코드의 원본을 식별합니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-Status <string>
상태 표시줄 위 제목의 두 번째 텍스트 줄을 지정합니다. 이 텍스트는 작업의 현재 상태를 설명합니다.
필수 여부 |
true |
위치 |
2 |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
<CommonParameters>
이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_commonparameters.
입력 및 출력
입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.
입력 |
없음 입력을 이 cmdlet으로 파이프할 수 없습니다. |
출력 |
없음 Write-Progress는 출력을 생성하지 않습니다. |
참고
진행률 표시줄이 나타나지 않으면 $ProgressPreference 변수의 값을 확인하십시오. 값이 SilentlyContinue로 설정되어 있으면 진행률 표시줄이 표시되지 않습니다. Windows PowerShell 기본 설정에 대한 자세한 내용은 about_Preference_Variables를 참조하십시오.
이 cmdlet의 매개 변수는 ProgressRecord 클래스(System.Management.Automation.ProgressRecord)의 속성에 해당합니다. 자세한 내용은 Windows PowerShell SDK(소프트웨어 개발 키트)의 ProgressRecord 항목을 참조하십시오.
예 1
C:\PS>for ($i = 1; $i -lt 101; $i++ )
{for ($j=0;$j -lt 10000;$j++) {} write-progress -activity "Search in Progress" -status "% Complete:" -percentcomplete $i;}
설명
-----------
이 명령은 중첩된 두 For 루프의 진행률을 표시합니다. 첫 번째 루프는 100까지 세고 이 루프가 증가할 때마다 두 번째 루프는 10000까지 셉니다.
Write-Progress 명령은 작업의 상대적인 완료율을 나타내는 상태 표시줄 제목("activity"), 상태 줄 및 변수 $i(For 루프의 카운터)를 포함합니다.
예 2
C:\PS>for($i = 1; $i -lt 101; $i++ ) {write-progress -activity Updating -status progress-> -percentcomplete $i -currentOperation OuterLoop} for($i = 1; $i -lt 101; $i++ ) {write-progress -activity Updating -status progress -percentcomplete $i -id 1 -currentOperation InnerLoop}
Updating
progress ->
[oooooooooooooooooo ]
OutsideLoop
Updating
progress
[oooooooooooooooooo ]
InnerLoop
설명
-----------
이 예에서는 각각 진행률 표시줄로 표시되는 중첩된 두 For 루프의 진행률을 표시합니다.
두 번째 진행률 표시줄에 대한 Write-Progress 명령은 첫 번째 진행률 표시줄과 구별되는 Id 매개 변수를 포함합니다. Id 매개 변수가 없으면 진행률 표시줄이 위 아래로 표시되지 않고 겹쳐서 표시됩니다.
예 3
C:\PS>$events = get-eventlog -logname system
C:\PS> $events | foreach-object -begin {clear-host;$i=0;$out=""} `
-process {if($_.message -like "*bios*") {$out=$out + $_.Message};
$i = $i+1;`
write-progress -activity "Searching Events" `
-status "Progress:" -percentcomplete ($i/$events.count*100)} `
-end {$out}
설명
-----------
이 명령은 시스템 이벤트 로그에서 "bios"라는 문자열을 찾는 명령의 진행률을 표시합니다.
첫 번째 명령 줄에서 Get-EventLog cmdlet은 시스템 로그의 이벤트를 가져와서 $events 변수에 저장합니다.
두 번째 줄에서는 이벤트를 ForEach-Object cmdlet으로 파이프합니다. 처리를 시작하기 전에 Clear-Host cmdlet을 사용하여 화면을 지우면 $i counter 변수가 0으로 설정되고 $out output 변수가 빈 문자열로 설정됩니다.
ForEach-Object cmdlet의 Process 스크립트 블록인 세 번째 줄에서는 들어오는 각 개체의 메시지 속성에서 "bios"를 검색합니다. 이 문자열을 찾으면 메시지가 $out에 추가됩니다.
네 번째 줄에서는 카운터 변수 $i가 증가되어 다른 이벤트를 검사했음을 기록합니다.
다섯 번째 줄에서는 각각 진행률 표시줄 제목의 첫 번째 줄과 두 번째 줄을 만드는 Activity 및 Status 텍스트 필드의 값을 지정하여 Write-Progress cmdlet을 사용합니다. 처리된 이벤트 수($i)를 검색된 총 이벤트 수($events.count)로 나눈 다음 100을 곱하여 PercentComplete 매개 변수 값을 계산합니다.
마지막 줄에서는 ForEach-Object cmdlet의 End 매개 변수를 사용하여 $out 변수에 저장된 메시지를 표시합니다.
참고 항목
개념
Write-Verbose
Write-Error
Write-Host
Write-Debug
Write-Output
Write-Warning