我想通过PromptForChoice请求用户输入,然后根据他们的选择执行某个操作。
在我的代码中,我有三个选项:笔记本电脑、平板电脑和工作站。如果用户选择了一个,我希望执行某个操作,而不是指定给其他选项的其他操作。
在代码中,我并不真正理解包含决策变量的行,也不理解$choices后面的数字1的含义。我在代码中我不理解的部分加了星号。
我不知道如何将某些操作分配给一个按钮。代码的第一部分是我想做但不起作用的内容,最后一部分是实际的脚本。
$decision = $Host.UI.PromptForChoice($title, $question, $choices, **1**)
if ($decision -eq **Laptop**)
$title = 'PC Type Selection'
$question = 'Select Object Type'
$choices = '&Laptop','&Tablet' ,'&Workstation'
$decision = $Host.UI.PromptForChoice($title, $question, $choices, 1)
if ($decision -eq 0) {
Write-Host 'confirmed'
} else {
Write-Host 'cancelled'
}
在ISE或控制台主机中,尽管如此;你不会从这个代码中得到一个字符串。您得到一个数组/索引号。
$title = 'PC Type Selection'
$question = 'Select Object Type'
$choices = '&Laptop','&Tablet' ,'&Workstation'
<#
Using PowerShell's variable squeezing to assign the results and
output to screen at the same time.
This, not a requirement, just a demo of how to see your variable
content on use.
#>
($decision = $Host.UI.PromptForChoice($title, $question, $choices, 1))
# Results
<#
0
#>
# Results
<#
1
#>
# Results
<#
2
#>
所以,你需要询问这个数字,然后使用条件逻辑分支到你想做的任何其他事情。多个或嵌套if/then/else,try/catch。或switch语句。
$title = 'PC Type Selection'
$question = 'Select Object Type'
$choices = '&Laptop','&Tablet' ,'&Workstation'
$decision = $Host.UI.PromptForChoice($title, $question, $choices, 1)
switch ($decision)
{
0 {'You selected Laptop'}
1 {'You selected Tablet'}
2 {'You selected Workstation'}
Default {}
}
# Results
<#
You selected Laptop
#>
# Results
<#
You selected Tablet
#>
# Results
<#
You selected Workstation
#>