在Powershell中格式化ListView用户选择

时间:2016-01-13 16:01:21

标签: listview powershell

我正在尝试将用户的选择从ListView输出到消息框以进行确认。

当我在PowerShell控制台中编写$ListView.SelectedItems.'Selection'时,选择以列表格式显示。

1
2
3

如果我尝试在消息框中显示相同的输出,[System.Windows.Forms.Messagebox]::Show(" User has selected: $($ListView.SelectedItems.'Selection')") 输出看起来像

User has selected: 1 2 3

同样,在powershell控制台中使用Write-host $ListView.SelectedItems.'Selection'也会输出1行。

我如何格式化,以便插入逗号或句号,或者可能将其显示为列表,而不是全部显示为内联。

1 个答案:

答案 0 :(得分:0)

在字符串中展开数据简单类型数组时,如下所示:

"$(@(1,2,3,4))"

PowerShell使用 o 输出 f 字段 s eparator 连接值,存储在automaric变量$OFS中。如果$OFS$null,则分隔符默认为空格,从您的问题中可以看出。

在调用$OFS之前更改MessageBox.Show()的值:

$OFS = ', '
$message = "User has selected: $($ListView.SelectedItems.'Selection')"
[System.Windows.Forms.Messagebox]::Show($message)

或使用-join自己进行连接:

$message = "User has selected: $($ListView.SelectedItems.'Selection' -join ', ')"
[System.Windows.Forms.Messagebox]::Show($message)