Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El Terminal Windows admite las secuencias "Barra de progreso" de ConEmu, también conocidas como "OSC 9;4". Estas secuencias permiten que una aplicación de línea de comandos muestre una barra de progreso en la ventana del terminal. Esto es útil para comandos de ejecución prolongada, como copiar archivos grandes o implementar aplicaciones.
En el Terminal Windows, la barra de progreso se muestra en dos lugares:
- En el encabezado de pestaña, como anillo de progreso
- En la barra de tareas de Windows, de la misma manera que una barra de progreso de descarga.
Requisitos previos
- Terminal Windows v1.6 o posterior.
- Para la animación de la barra de tareas, debe asegurarse de que "Mostrar animaciones en Windows" esté habilitada en la sección "Configuración/Accesibilidad/Pantalla".
Formato de secuencia de barra de progreso
Para establecer la barra de progreso, debe enviar la secuencia OSC 9;4 al terminal. Esta secuencia tiene el siguiente formato:
ESC ] 9 ; 4 ; <state> ; <progress> BEL
ESC
es el carácter de escape, ASCII 27.BEL
es el carácter de campana, ASCII 7.<state>
es uno de0
,1
,2
,3
o4
.0
es el estado predeterminado e indica que la barra de progreso debe estar oculta. Use este estado cuando se complete el comando para borrar cualquier estado de progreso.1
: establezca el valor de progreso en<progress>
, en el estado "Predeterminado".2
: establezca el valor de progreso en<progress>
, en el estado "Error".3
: establezca la barra de tareas en el estado "Indeterminado". Esto es útil para los comandos que no tienen un valor de progreso, pero que siguen ejecutándose. Este estado omite el valor<progress>
.4
: establezca el valor de progreso en<progress>
, en el estado "Advertencia".
<progress>
es un número comprendido entre 0 y 100, ambos incluidos.
Ejemplos
PowerShell
# Set the progress bar to 50%
Write-Host -NoNewline ([char]27 + "]9;4;1;50" + [char]7)
O bien, como alternativa, en 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");
Símbolo del sistema
El símbolo del sistema es un poco más complicado, ya que no tiene gran compatibilidad con las secuencias de escape. Puede usar el comando echo
para enviar la secuencia de escape, pero deberá usar caracteres ESC y BEL literales en el archivo. Estos pueden representarse como cuadros en el explorador web, pero deben funcionar en el terminal.
<NUL set /p =]9;4;1;50
echo Started progress (normal, 50)
En el ejemplo anterior se usa el dispositivo NUL
para escribir la secuencia de escape en la consola sin una nueva línea.
Nota: ¿No ve su shell favorito aquí? Si lo averigua, no dude en contribuir a una solución para su shell preferido.