两款【linux字符界面下】显示【菜单】,【选项】的powershell脚本模块介绍

时间:2022-05-11 17:27:33

两款【linux字符界面下】显示【菜单】,【选项】的powershell脚本模块介绍

powershell linux  ps1 menu choice Multiselect 传教士 菜单

powershell 传教士 原创文章 始于2017-02-22,文章随时更新,目前博客园为最新版。 允许转载,但必须保留名字和出处,否则追究法律责任。

问:去哪里查找菜单模块?

答: 微软官方软件库。 https://www.powershellgallery.com/

问:如何查找菜单模块?

答: find-module *menu*

返回

MenuShell

ps-menu

ServerOpsMenu

CliMenu

SLMenu

问:如何验证这些模块?

答: 靠兄弟我帮忙,人肉验证。

-------------ps-Menu篇-------------

问:linux下,如何安装?

答: install-module ps-menu

问:模块安装到哪个目录去了?

答: /opt/microsoft/powershell/6.0.xxx版本号/Modules

问:如何使用?

答:

代码:

$a = menu -menuitem '吃了米饭','吃了面条','吃了大蒜' #单选
$b = menu -menuitem '吃了米饭','吃了面条','还有榨菜' -Multiselect #多选

上述代码中文显示正常。测试环境centos7

图:

两款【linux字符界面下】显示【菜单】,【选项】的powershell脚本模块介绍

点评:

这个模块极其简单, 用

if ($a -eq '吃了大蒜') { xxx命令 } 来使用。 多选则返回数组。是个人就会,呵呵。

-------------CliMenu篇-------------

问:官网在哪?

答: https://github.com/torgro/cliMenu

问:linux下,如何安装?

答: install-module climenu

问:模块安装到哪个目录去了?

答: /opt/microsoft/powershell/6.0.xxx版本号/Modules

问:如何使用?

答:

Set-MenuOption -MaxWith 80 #最大宽度
Set-MenuOption -MenuFillChar "#" -MenuFillColor DarkYellow #外框符号,符号颜色
Set-MenuOption -Heading "PowerShell 让微软云再次强大" -HeadingColor DarkCyan #标题信息,标题颜色
$mainMenu = New-Menu -Name "main" -DisplayName "Main Menu"
$menuItem1 = New-MenuItem -Name "m1" -DisplayName "立马开始学习?" -Action { Write-host "选择了1" } -DisableConfirm:$true
$menuItem2 = New-MenuItem -Name "m2" -DisplayName "删除后跑路?" -Action { Write-host "选择了2" } -DisableConfirm:$true
$menuItem1 | Add-MenuItem -Menu main
$menuItem2 | Add-MenuItem -Menu main
Clear-Host
Show-Menu

图:

两款【linux字符界面下】显示【菜单】,【选项】的powershell脚本模块介绍

上述代码中文显示正常。测试环境centos7

------------- choice篇 -------------

问:如何安装?

答: powershell自带,无需安装。

问:如何使用?

答: win,linux通用的代码:

$title = "标题"
$message = "询问信息。立马开始学习ps,还是格式化跑路?"
$yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes","选问号后出现是的帮助信息。传教士"
$no = New-Object System.Management.Automation.Host.ChoiceDescription "&No","选问号后出现否的帮助信息。2017分享"
$options = [System.Management.Automation.Host.ChoiceDescription[]]($yes, $no)
$result = $host.ui.PromptForChoice($title,$message,$options,0) switch ($result)
{
  0 { "你开始学ps了" }
  1 { "你格式化跑路了" }
}

点评: 自带的很简单,主要用于选是否。

-完-