Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Терминал Windows поддерживает последовательности ConEmu Progress Bar, также известные как OSC 9; 4". Эти последовательности позволяют приложению командной строки отображать индикатор хода выполнения в окне терминала. Это полезно для длительных команд, таких как копирование больших файлов или развертывание приложений.
В Терминал Windows индикатор хода выполнения отображается в двух местах:
- В заголовке вкладки в виде кольца хода выполнения
- На панели задач Windows то же самое, что и индикатор выполнения загрузки.

Необходимые компоненты
- Терминал Windows версии 1.6 или более поздней версии.
- Для анимации панели задач необходимо убедиться, что в разделе "Параметры/ Упрощение доступа и отображения" включена функция "Показать анимации в Windows".
Формат последовательности индикаторов выполнения
Чтобы задать индикатор выполнения, необходимо отправить OSC 9; 4 последовательности в терминале. Эта последовательность имеет следующий формат:
ESC ] 9 ; 4 ; <state> ; <progress> BEL
ESC— escape-символ, ASCII 27.BEL— символ колокола, ASCII 7.<state>является одним из0, ,21,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");
Командная строка
Командная строка немного сложнее, так как она не поддерживает escape-последовательности. Вы можете использовать команду для отправки escape-последовательности, но вам потребуется использовать echo литеральные символы ESC и BEL в файле. Они могут отображаться в виде полей в веб-браузере, но они должны работать в терминале.
<NUL set /p =]9;4;1;50
echo Started progress (normal, 50)
В приведенном выше примере устройство используется NUL для записи escape-последовательности в консоль без новой строки.
Примечание. Не видите любимую оболочку здесь? Если вы считаете это, вы можете внести свой вклад в решение для предпочитаемой оболочки!
Windows Terminal