PowerShell - Monitor WindowSize de um script em execução

0

Eu tenho um script com uma interface de usuário simples com base em Write-Progress .

Como exemplo, um separador:

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

Eu gostaria de ajustar este separador sempre que o WindowSize é alterado, mas não consigo encontrar uma maneira de monitorar o script em segundo plano.

Sinto que algo assim deveria funcionar dentro de uma função ou trabalho:

while ($true) {

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

        $ui_seperator = '_' * $window_width

    }
}

No entanto, funções e trabalhos são algo que eu sei pouco ou nada e não consegui encontrar nenhuma solução para alcançar o resultado desejado. Qualquer ajuda é apreciada! :)

    
por FatalBulletHit 12.04.2018 / 13:01

1 resposta

0

Eu ainda estou aprendendo (fazendo) o PowerShell, mas consegui um resultado de trabalho. Eu escrevi 4 funções:

Linha de quebra

Mantém as palavras separadas no final de uma linha.

Ajustar host

Reconfigura a saída de Break-Line se a largura da janela for alterada (monitora um processo em execução ou é executada por uma duração ou iterações definidas).

Animate-Host

Uma animação de ponto simples (também monitora um processo em execução ou é executada por uma duração ou iterações definidas).

Choice-AdjustHost

Um menu de escolha simples - semelhante ao Choice.exe, mas melhor (colore a opção selecionada).

Isto é provavelmente tudo menos perfeito e "teste de estresse", pois é possível encontrar um par de separadores desalinhados, além de que funciona e parece muito bom também (se eu mesmo disser isso).

Você pode encontrar uma prévia do Imgur: link

E as funções estão no Pastebin (tempo demais para colar aqui): link

    
por 15.05.2018 / 02:06

Tags