Powershell $Host.UI.Prompt()正在忽略属性';默认值';现场描述
我尝试获取用户输入,如果没有输入,则返回默认值 我将使用Powershell $Host.UI.Prompt()正在忽略属性';默认值';现场描述,powershell,input,Powershell,Input,我尝试获取用户输入,如果没有输入,则返回默认值 我将使用$Host.UI.Prompt,因为根据MSDN(),它应该正好提供这个功能——或者我是这么认为的 简而言之:$Host.UI.Prompt方法接受一组FieldDescription对象。这些对象中的每一个都可以分配一个DefaultValue属性,当用户没有为此特定字段提供输入时,应该返回该属性 除了默认值部分之外,我已经让所有东西都按预期工作了 为了查看是否弄乱了我的脚本,我还尝试了互联网上的示例脚本,例如: $Host.UI.Pro
$Host.UI.Prompt
,因为根据MSDN(),它应该正好提供这个功能——或者我是这么认为的
简而言之:$Host.UI.Prompt
方法接受一组FieldDescription
对象。这些对象中的每一个都可以分配一个DefaultValue
属性,当用户没有为此特定字段提供输入时,应该返回该属性
除了默认值部分之外,我已经让所有东西都按预期工作了
为了查看是否弄乱了我的脚本,我还尝试了互联网上的示例脚本,例如:
$Host.UI.PromptForChoice
工作正常,当我没有选择时,DefaultChoice中的值会按预期返回
$Host.UI.Prompt
不会按预期提供分配的默认值。与此类似,默认值不会显示在提示符上,当我在没有任何输入的情况下按enter键时,结果为空/零
有趣的是,当我在PowerGUI中运行这个脚本时,GUI弹出窗口显示了相应inputfield中建议的所有分配的DefaultValue。
因此,它似乎是可行的,只是PowerShell中的$Host.UI
对象似乎在某种程度上被窃听了
我知道我可以很容易地解决这个问题,但我不想。
我想理解为什么它不做它不做的事情,仅仅因为
我运行的是64位Windows 7 Professional,包含所有最新更新
这是我的PSVersionTable:
Name Value
---- -----
PSVersion 4.0
WSManStackVersion 3.0
SerializationVersion 1.1.0.1
CLRVersion 4.0.30319.18444
BuildVersion 6.3.9600.16406
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion 2.2
我希望这里的其他人,最好是具有相同设置的人,可以尝试验证和再现这种行为
提前谢谢 如果有帮助的话,我有PS3.0版本和相同的操作系统,我会得到类似的结果。我试过ISE和shell。谢谢,看来我们这里确实有个bug。。。向微软报告此事的最佳地点是哪里?(如果有这样的地方)