我有一个简单的 PowerShell 脚本,它同时使用
$host.ui.Prompt
和 $host.ui.PromptForChoice
。当我从 ISE 运行它时,PromptForChoice
会弹出一个对话框,但 Prompt
在控制台上出现提示。
Read-Host 也会在控制台进行提示,但不显示对话框。
即 下面的脚本显示了一个用于初始选择的对话框,然后在控制台窗格中提示 A 和 B。这正常吗?我对文档的阅读表明这三个都应该抛出一个对话框。我是不是错过了什么?
我正在运行 PowerShell 3.0,以防相关。
$choicedesc = New-Object System.Collections.ObjectModel.Collection[System.Management.Automation.Host.ChoiceDescription]
$choicedesc.Add((New-Object "System.Management.Automation.Host.ChoiceDescription" -ArgumentList "&Foo"))
$choicedesc.Add((New-Object "System.Management.Automation.Host.ChoiceDescription" -ArgumentList "&Bar"))
$choice = $Host.ui.PromptForChoice("Choice", "Make a choice", $choicedesc, -1)
$a = Read-Host "A"
$fields = New-Object "System.Collections.ObjectModel.Collection[System.Management.Automation.Host.FieldDescription]"
$f = New-Object System.Management.Automation.Host.FieldDescription "B"
$f.DefaultValue = ""
$f.Label = "&B"
$fields.Add($f)
$result = $Host.ui.Prompt('cap','msg', $fields)
https://stackoverflow.com/a/8272294/9731176
正如其名称所示,特定于主机实现。 PowerGui 实现了基于 GUI 的自定义主机/提示符。控制台上的默认提示是您看到的文本提示。$host.ui.prompt
这里: