Powershell PromptForChoice - 如何编辑描述?

pun*_*nky 3 powershell

我需要创建脚本,该脚本将根据用户输入运行不同的代码块。为此,我在 PS 中使用 PromptForChoice 方法。我的代码目前如下所示:

$title    = 'Disk clear'
$question = 'What do you want to remove?'
$choices  = '&Browser cache','&Temp folder'

$decision = $Host.UI.PromptForChoice($title, $question, $choices, 1)

switch ($decision)
{
    0 {'You selected Browser cache'}
    1 {'You selected Temp folder'}
    Default {}
}
Run Code Online (Sandbox Code Playgroud)

当我运行脚本时,我得到以下输出:

Disk clear

What do you want to remove?

[B] Browser cache  [T] Temp folder  [?] Help (default is "T"):
Run Code Online (Sandbox Code Playgroud)

如果我输入 ? 为了获得帮助(找出 B 和 T 的含义),我得到了:

B -
T -
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何编辑选项(B & T)的描述?

Ash*_*Ash 5

选择的选项实际上是类型[System.Management.Automation.Host.ChoiceDescription],并包含一个将帮助消息指定为第二个字符串参数的选项。

$title    = 'Disk clear'
$question = 'What do you want to remove?'
$Choices = @(
    [System.Management.Automation.Host.ChoiceDescription]::new("&Browser Cache", "Clear the BrowserCache")
    [System.Management.Automation.Host.ChoiceDescription]::new("&Temp Folder", "Clear the TempFolder")
)
$decision = $Host.UI.PromptForChoice($title, $question, $choices, 1)
Run Code Online (Sandbox Code Playgroud)

输出

Disk clear
What do you want to remove?
[T] Temp Folder  [B] Browser Cache  [?] Help (default is "B"): ?
T - Clear the TempFolder
B - Clear the BrowserCache
[T] Temp Folder  [B] Browser Cache  [?] Help (default is "B"):
Run Code Online (Sandbox Code Playgroud)