#powershell
#powershell
Вопрос:
Мне нужно добавлять запятую к каждой строке, мой код добавляет «,» к последнему элементу, а также как это устранить
for($j=0; $j -lt $back_log_bloblist.Count; $j ){
if($back_log_bloblist[$j].Name -like "$Value"){
$string = $back_log_bloblist[$j].Name ","
Write-Host $string
}
}
Комментарии:
1. что вы НА САМОМ деле пытаетесь сделать? не запятые, какова ЦЕЛЬ, которую вы пытаетесь достичь. похоже, вы пытаетесь вручную создать csv-файл… и это почти всегда плохая идея. [ усмешка ]
Ответ №1:
Это можно решить намного проще без явного цикла:
$string = ($back_log_bloblist.Name -like $Value) -join ','
Объяснение:
$back_log_bloblist.Name
создает массив из значенийName
свойства всех$back_log_bloblist
элементов-like $Value
выбирает все элементы из этого массива, которые соответствуют шаблону в$Value
-join ','
наконец, объединяет все выбранные элементы (вставляя запятые только между элементами, а не после, именно то, что вы хотите)- вы могли бы убрать скобки, они просто для концептуальной ясности
Доказательство концепции:
$back_log_bloblist = [pscustomobject]@{ Name='foo' },
[pscustomobject]@{ Name='fop' },
[pscustomobject]@{ Name='bar' }
$Value = 'f*'
$string = ($back_log_bloblist.Name -like $Value) -join ','
$string
Вывод:
foo,fop