PowerShell: supervisar el tamaño de la ventana de un script en ejecución

PowerShell: supervisar el tamaño de la ventana de un script en ejecución

Tengo un script con una interfaz de usuario simple basada en Write-Progress.

Como ejemplo, un separador:

$ui_seperator = '_' * (Get-Host).UI.RawUI.WindowSize.Width

Me gustaría ajustar este separador cada vez que se modifica el tamaño de la ventana, pero no puedo encontrar una manera de monitorear el script en segundo plano.

Siento que algo como esto debería funcionar dentro de una función o trabajo:

while ($true) {

    if ($window_width -ne ($window_width = (Get-Host).UI.RawUI.WindowSize.Width)) {

        $ui_seperator = '_' * $window_width

    }
}

Sin embargo, las funciones y los trabajos son algo de lo que sé poco o nada y no pude encontrar ninguna solución para lograr el resultado deseado. ¡Cualquier ayuda es apreciada! :)

Respuesta1

interfaz de usuario simple

El módulo SimpleUI mejora la facilidad de uso y la legibilidad de la consola PowerShell y viene con algunos trucos que contribuyen a una mejor experiencia general de la consola.

Entre otras cosas, presenta un ancho de búfer estable, división correcta de palabras, espacios iniciales, una animación simple de tres puntos y un mensaje de usuario atractivo con algunas características adicionales.

Para obtener una vista previa, pegue las siguientes líneas en...

... Potencia Shell:

# This will download the SimpleUI module as well as a preview script and then start the latter (make sure script execution is allowed)

Establecer ubicación $HOME\Descargas (Invoke-WebRequest -UseBasicParsing -Uri 'https://pastebin.com/raw/9RSusrvC').Contenido | Agregar contenido -Path.\SimpleUI.psm1 -Codificación UTF8 (Invoke-WebRequest -UseBasicParsing -Uri 'https://pastebin.com/raw/e0n3mWy0').Contenido | Agregar contenido -Ruta .\SimpleUIPreview.ps1 -Codificación UTF8 y .\SimpleUIPreview.ps1

... cmd:

:: This will download the SimpleUI module as well as a preview script and then start the latter
PowerShell -ExecutionPolicy Unrestricted -NoProfile -Command "& { Set-Location $HOME\Downloads; (Invoke-WebRequest -UseBasicParsing -Uri 'https://pastebin.com/raw/9RSusrvC').Content | Add-Content -Path .\SimpleUI.psm1 -Encoding UTF8; (Invoke-WebRequest -UseBasicParsing  -Uri 'https://pastebin.com/raw/e0n3mWy0').Content | Add-Content -Path .\SimpleUIPreview.ps1 -Encoding UTF8; & .\SimpleUIPreview.ps1 }"

Siéntase libre de utilizar y modificar este módulo como desee.

Puede informar problemas, dar comentarios, sugerir funciones o pedir ayuda enviando un correo electrónico a:[correo electrónico protegido]

información relacionada