我正在尝试将用户的选择从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行。
我如何格式化,以便插入逗号或句号,或者可能将其显示为列表,而不是全部显示为内联。
答案 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)