Добрый день!
Есть массив с плавающим количеством элементов (строка из CSV-файла)
Как мне выбрать ключи с определённым значением?
пробовал $row | select -Property Key -Value -eq "1"
не проходит
или я вообще не с той стороны захожу?
Спасибо
Роман Безруков, adm3;Full;Full;1;;;1;;;
запрос $row | where { $row.Login -contains "adm3" }
отрабатывает нормально, выводит полный набор полей, но полный
Роман Безруков, набор полей меняется, как я и говорил
мне надо вывести все поля, где есть значения
я уже думал выдернуть все заголовки из первой строки и пробежаться по ним циклом, но хотелось бы более мм... изящного решения
Роман Безруков, способ хорош, но Вы, коллега, упускаете важное условие - field плавающий. Если добавят, убавят или отредактируют поле, то весь набор переделывать
Я решил чуть более изящно
$csv = Import-Csv $Base_Path -Delimiter ";" | Where-Object Login -eq "adm3"
$flag = "1"
$headers = $csv[0].psobject.Properties.Name
#$headers
if ( ($headers -contains $csv.NewSignature) -and ($headers -contains $csv.ReplySignature) )
{
Write-Host "New '"$csv.NewSignature"'"
Write-Host "Reply '"$csv.ReplySignature"'"
Write-Host "указания о подписях по умолчанию найдены"
Write-Host "****"
foreach ($header in $headers)
{
if ($csv.$header -eq $flag)
{
Write-Host $header
}
}
}
else
{
Write-Host "не найдены указания о подписях по умолчанию"
}