PowerShell — Мониторинг размера окна запущенного скрипта

PowerShell — Мониторинг размера окна запущенного скрипта

У меня есть скрипт с простым пользовательским интерфейсом на основе Write-Progress.

В качестве примера, разделитель:

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

Я хотел бы настраивать этот разделитель при каждом изменении размера окна, но не могу найти способ отслеживать выполнение скрипта в фоновом режиме.

Мне кажется, что-то вроде этого должно работать в рамках какой-то функции или работы:

while ($true) {

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

        $ui_seperator = '_' * $window_width

    }
}

Однако функции и задания — это то, о чем я знаю очень мало или совсем ничего, и я не смог найти никакого решения, как достичь желаемого результата. Любая помощь будет оценена по достоинству! :)

решение1

SimpleUI

Модуль SimpleUI повышает удобство использования и читаемость консоли PowerShell и содержит несколько функций, которые в целом улучшают работу с консолью.

Помимо прочего, он имеет стабильную ширину буфера, правильное разбиение слов, начальные пробелы, простую анимацию из трех точек и аккуратную подсказку для пользователя с некоторыми дополнительными функциями.

Для предварительного просмотра вставьте следующие строки в...

... PowerShell:

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

Установить-Расположение $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 | Добавить-Content -Путь .\SimpleUIPreview.ps1 -Кодировка UTF8 & .\SimpleUIPreview.ps1

... команда:

:: 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 }"

Вы можете свободно использовать и изменять этот модуль по своему усмотрению.

Вы можете сообщить о проблемах, оставить отзыв, предложить функции или попросить о помощи, отправив электронное письмо по адресу:[email protected]

Связанный контент