0
Powershell: консольное меню в скриптах
- Опубликовано в категории: Windows 7 Seven » Администрирование
- Просмотров: 1897
В процессе работы в Powershell, а особенно в процессе написания скриптов, вы у вас может возникнуть необходимость дать пользователю возможность выбора. Например, вы разрабатываете скрипт конфигурации, который будет использовать другой администратор, или простой сотрудник. Возможно какой то параметр конфигурации сети зависит от местоположения пользователя, который запустил скрипт, и вы хотите дать ему возможность выбора настроки с помощью меню.
Вот один из возможных вариантов решения этой проблемы без прибегания к графическим интрументам, или WinForms.
В Powershell мы используем командлет Read-Host, чтобы получить данные от пользователя.
PS S:\> $menu=@" >> 1 Показать информацию о компьютере >> 2 Показать информацию о поступившей почте >> 3 Перезапустить службу печати >> Q Выйти >> >> Выберите номер задачи или нажмите Q для выхода >> "@ >> PS S:\> $r=Read-Host $menu 1 Показать информацию о компьютере 2 Показать информацию о поступившей почте 3 3 Перезапустить службу печати Q Выйти Выберите номер задачи или нажмите Q для выхода PS S:\> $r 3
Потом мы можем использовать оператор Switch, чтобы сделать что нибудь, опираясь на переменную $r. Ниже следует пример скрипта, который включает в себя относительно простую функцию отображения меню.
Function Show-Menu { Param( [Parameter(Position=0,Mandatory=$True,HelpMessage="Enter your menu text")] [ValidateNotNullOrEmpty()] [string]$Menu, [Parameter(Position=1)] [ValidateNotNullOrEmpty()] [string]$Title="Menu", [switch]$ClearScreen ) if ($ClearScreen) {Clear-Host} #build the menu prompt $menuPrompt=$title #add a return $menuprompt+="`n" #add an underline $menuprompt+="-"*$title.Length $menuprompt+="`n" #add the menu $menuPrompt+=$menu Read-Host -Prompt $menuprompt } #define a menu here string $menu=@" 1 Show info about a computer 2 Show info about someones mailbox 3 Restarts the print spooler Q Quit Select a task by number or Q to quit "@ #Keep looping and running the menu until the user selects Q (or q). Do { #use a Switch construct to take action depending on what menu choice #is selected. Switch (Show-Menu $menu "My Help Desk Tasks" -clear) { "1" {Write-Host "run get info code" -ForegroundColor Yellow sleep -seconds 2 } "2" {Write-Host "run show mailbox code" -ForegroundColor Green sleep -seconds 5 } "3" {Write-Host "restart spooler" -ForegroundColor Magenta sleep -seconds 2 } "Q" {Write-Host "Goodbye" -ForegroundColor Cyan Return } Default {Write-Warning "Invalid Choice. Try again." sleep -milliseconds 750} } #switch } While ($True)
- Категория: Windows 7 Seven » Администрирование
Также рекомендуем:
- Удаляем вирус, перенаправляющий на страницы вымогателейВчера неожиданно мне пришлось бороться с одной заразой на компьютере, которая упорно писала в
- Как установить Windows XP на ноутбук/ПКУстановка Windows XP - первый серьезный шаг на пути к компьютерной грамотности. Операционная
- Разные способы доступа к панели управленияВ статьях, описание доступа к одним и тем же элементам панели управления, различается. Происходит
- Как вернуть стандартное меню "Все программы" в Windows 7Существует много новых пользователей Windows 7, которые не сильно рады новому меню Пуск и хотели бы
- Знакомство с реестром WindowsРеестр – база данных операционной системы, содержащая конфигурационные сведения.