У меня есть скрипт с простым пользовательским интерфейсом на основе 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]