@NewDevLab

Как в PS перемещаться стрелками?

Хочу сделать интерактивный скрипт - меню, который кроме 1...N принимает еще другое управление с клавы типа стрелок и т.д. для перемещения по меню. Есть ли что подобное?
  • Вопрос задан
  • 141 просмотр
Решения вопроса 1
@MaxKozlov Куратор тега PowerShell
Что-то типа того ?
function ShowMenu([array]$Menu, [int]$Default)
{
  $minY = [Console]::CursorTop
  $y = [Math]::Max([Math]::Min($Default, $Menu.Count), 0)
  do {
    [Console]::CursorTop = $minY
    [Console]::CursorLeft = 0
    $i = 0
    foreach ($item in $Menu) {
      $colors = @{
         BackgroundColor = if ($i -ne $y) { [Console]::BackgroundColor } else { 'Cyan' }
         ForegroundColor = if ($i -ne $y) { [Console]::ForegroundColor } else {' Blue' }
      }
      Write-Host (' {0}. {1} ' -f ($i+1), $item) @colors
      $i++
    }
    $k = [Console]::ReadKey()
    switch ($k.Key) {
      'UpArrow' { if ($y -gt 0) { $y-- } }
      'DownArrow' { if ($y -lt ($menu.Count - 1)) { $y++ } }
      'Enter' { return $Menu[$y] }
    }
  } while ($k.Key -notin ([ConsoleKey]::Escape, [ConsoleKey]::Enter))
}

$Menu = 'test1','text2','menu3','result4'

ShowMenu $menu 2


Реакцию на другие кнопочки можно доработать по вкусу
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@BeatHazard
Попробуйте воспользоваться инструкцией из этой статьи scriptcoding.ru/2013/06/25/wscript-shell-sendkeys
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы