PowerShell - Überwachen der Fenstergröße eines laufenden Skripts

PowerShell - Überwachen der Fenstergröße eines laufenden Skripts

Ich habe ein Skript mit einer einfachen Benutzeroberfläche basierend auf Write-Progress.

Als Beispiel ein Trennzeichen:

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

Ich möchte diesen Trenner anpassen, wenn die Fenstergröße geändert wird, finde aber keine Möglichkeit, das Skript im Hintergrund zu überwachen.

Ich bin der Meinung, dass so etwas innerhalb einer Funktion oder eines Jobs funktionieren sollte:

while ($true) {

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

        $ui_seperator = '_' * $window_width

    }
}

Allerdings kenne ich mich mit Funktionen und Jobs nicht besonders gut aus und konnte keine Lösung finden, wie ich das gewünschte Ergebnis erzielen könnte. Für jede Hilfe bin ich dankbar! :)

Antwort1

Einfache Benutzeroberfläche

Das SimpleUI-Modul verbessert die Benutzerfreundlichkeit und Lesbarkeit der PowerShell-Konsole und bringt einige Gimmicks mit, die zu einem insgesamt besseren Konsolen-Erlebnis beitragen.

Unter anderem verfügt es über eine stabile Pufferbreite, korrekte Worttrennung, führende Leerzeichen, eine einfache Drei-Punkte-Animation und eine gut aussehende Benutzeraufforderung mit einigen zusätzlichen Funktionen.

Für eine Vorschau fügen Sie die folgenden Zeilen ein in...

... Power Shell:

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

Set-Location $HOME\Downloads (Invoke-WebRequest -UseBasicParsing -Uri 'https://pastebin.com/raw/9RSusrvC').Inhalt | Add-Content -Path .\SimpleUI.psm1 -Encoding UTF8 (Invoke-WebRequest -UseBasicParsing -Uri 'https://pastebin.com/raw/e0n3mWy0').Inhalt | Add-Content -Pfad .\SimpleUIPreview.ps1 -Kodierung UTF8 & .\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 }"

Sie können dieses Modul beliebig verwenden und ändern.

Sie können Probleme melden, Feedback geben, Funktionen vorschlagen oder um Hilfe bitten, indem Sie eine E-Mail an folgende Adresse senden:[email geschützt]

verwandte Informationen