2016-01-13 3 views
0

Я пытаюсь вывести выбор пользователя из ListView в окно сообщения для подтверждения.Форматирование списка пользователей ListView в Powershell

Когда я пишу $ListView.SelectedItems.'Selection' в консоли powershell, выбор выводится в виде списка.

1 
2 
3 

Если я пытаюсь показать тот же результат в окне сообщения, [System.Windows.Forms.Messagebox]::Show(" User has selected: $($ListView.SelectedItems.'Selection')") выход приходит вне похожий

User has selected: 1 2 3

Аналогично, используя Write-host $ListView.SelectedItems.'Selection' в консоли выходов Powershell все в 1 линии также.

Как я могу форматировать, поэтому я могу вставить запятую или период или, возможно, показать его как список, а не показывать все в строке.

+1

'$ ($ ListView.SelectedItems.Selection -join "") ' –

ответ

0

Когда вы расширяете массив данных простых типов внутри строки, например, так:

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

PowerShell сцепляет значения с помощью уплотнительного utput е IELD сек eparator, хранится в автоматическая переменная $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) 
Смежные вопросы