Windows 터미널은 "OSC 9;4"라고도 하는 ConEmu "진행률 표시줄" 시퀀스를 지원합니다. 이러한 시퀀스를 사용하면 명령줄 애플리케이션이 터미널 창에 진행률 표시줄을 표시할 수 있습니다. 이 기능은 대용량 파일 복사 또는 애플리케이션 배포와 같은 장기 실행 명령에 유용합니다.
Windows 터미널에서 진행률 표시줄은 다음 두 위치에 표시됩니다.
- 탭 머리글에서 진행률 링으로
- Windows 작업 표시줄에서 다운로드 진행률 표시줄과 동일한 방식으로
필수 조건
- Windows 터미널 v1.6 이상
- 작업 표시줄 애니메이션의 경우 "Windows에서 애니메이션 표시"가 "설정/접근성/표시"에서 사용하도록 설정되어 있는지 확인해야 합니다.
진행률 표시줄 시퀀스 형식
진행률 표시줄을 설정하려면 OSC 9;4 시퀀스를 터미널로 보내야 합니다. 이 시퀀스의 형식은 다음과 같습니다.
ESC ] 9 ; 4 ; <state> ; <progress> BEL
ESC
는 이스케이프 문자 ASCII 27입니다.BEL
은 벨 문자 ASCII 7입니다.<state>
는0
,1
,2
,3
또는4
중 하나입니다.0
은 기본 상태이며 진행률 표시줄을 숨겨야 임을 나타냅니다. 이 명령이 완료되면 이 상태를 사용하여 진행 상태를 지울 수 있습니다.1
: 진행률 값을 "기본" 상태의<progress>
로 설정합니다.2
: 진행률 값을 "오류" 상태의<progress>
로 설정합니다.3
: 작업 표시줄을 "미확정" 상태로 설정합니다. 이 상태는 진행률 값이 없지만 여전히 실행 중인 명령에 유용합니다. 이 상태는<progress>
값을 무시합니다.4
: 진행률 값을 "경고" 상태의<progress>
로 설정합니다.
<progress>
는 0~100 사이의 숫자입니다.
예제
PowerShell
# Set the progress bar to 50%
Write-Host -NoNewline ([char]27 + "]9;4;1;50" + [char]7)
또는 PowerShell 7에서는 다음에 해당합니다.
# Set the progress bar to 50%
Write-Host -NoNewline ("`e]9;4;1;50`a")
Bash
# Set the progress bar to 50%
echo -ne "\033]9;4;1;50\a"
C#
// Set the progress bar to 50%
Console.Write("\x1b]9;4;1;50\x07");
명령 프롬프트
명령 프롬프트는 이스케이프 시퀀스를 제대로 지원하지 않으므로 좀 더 까다롭습니다. echo
명령을 사용하여 이스케이프 시퀀스를 보낼 수 있지만 파일에서 리터럴 ESC 및 BEL 문자를 사용해야 합니다. 웹 브라우저에서 상자로 렌더링될 수 있지만 터미널에서 작동해야 합니다.
<NUL set /p =]9;4;1;50
echo Started progress (normal, 50)
위의 예제에서는 NUL
디바이스를 사용하여 줄 바꿈 없이 콘솔에 이스케이프 시퀀스를 씁니다.
참고: 즐겨찾는 셸이 여기에 표시되지 않나요? 당신이 그것을 알아 내는 경우, 원하는 셸에 대한 솔루션을 기여 주시기 바랍니다!
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
Windows Terminal