我知道如何使用类似
的内容更改主ISE窗口的标题$Host.UI.RawUI.WindowTitle = "My Awesome New Window Title"
但我想知道如何访问弹出读取主机请求的窗口标题,如:
$strP4Pass = Read-Host "Please enter Perforce Password" -assecurestring
它标有Windows PowerShell ISE - Input
作为标题 - 是的,我知道我在窗口中有Please enter Perforce Password
提示 - 但我真的希望能够自定义标题 - 任何想法?
答案 0 :(得分:7)
您可以使用System.Management.Automation.Host.ChoiceDescription
创建具有多个选项的自定义提示$Yes = New-Object System.Management.Automation.Host.ChoiceDescription "Yes Please"
$No = New-Object System.Management.Automation.Host.ChoiceDescription "No, Thank you"
$YesNoChoices = [System.Management.Automation.Host.ChoiceDescription[]]($No,$Yes)
$Answer = $Host.UI.PromptForChoice("Caption goes here", "Message Goes here", $YesNoChoices, 1)
这将产生与-confirm或-whatif相似的UI,但您可以指定所需的响应。这适用于任何PowerShell主机,ISE或PowerShell.exe。
答案 1 :(得分:2)
这是个人答案,但对我来说,ISE是一个用于编辑和调试脚本的WorkFrame。我更喜欢PowerGUI。
执行你的scipts并不是最终的PowerShell解释器。因此,如果要为代码添加UI,可以查看如何在脚本中集成Windows窗体或WPF。它还有一些模块可以帮助你。
这是关于WPF的Microsoft系列
WPF & PowerShell – Part 1 ( Hello World & Welcome to the Week of WPF )
WPF & PowerShell – Part 2 (Exploring WPF (and the rest of .NET) with Scripts)
WPF & PowerShell -- Part 3 (Handling Events)
了解WPK(WPF PowerShell Toolkit)