从 ISE 运行时,Host.ui.prompt 不会弹出对话框/表单

问题描述 投票:0回答:1

我有一个简单的 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)
powershell powershell-ise
1个回答
0
投票

https://stackoverflow.com/a/8272294/9731176

$host.ui.prompt
正如其名称所示,特定于主机实现。 PowerGui 实现了基于 GUI 的自定义主机/提示符。控制台上的默认提示是您看到的文本提示。

也许你想看这里:http://www.windowsitpro.com/blog/powershell-with-a- Purpose-blog-36/scripting-languages/getting-input-and-inputboxes-in-powershell-137449

这里:

http://technet.microsoft.com/en-us/library/ff730941.aspx

© www.soinside.com 2019 - 2024. All rights reserved.