Роман Безруков, способ хорош, но Вы, коллега, упускаете важное условие - 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 "не найдены указания о подписях по умолчанию"
}
Роман Безруков, набор полей меняется, как я и говорил
мне надо вывести все поля, где есть значения
я уже думал выдернуть все заголовки из первой строки и пробежаться по ним циклом, но хотелось бы более мм... изящного решения
Роман Безруков, adm3;Full;Full;1;;;1;;;
запрос $row | where { $row.Login -contains "adm3" }
отрабатывает нормально, выводит полный набор полей, но полный
а вот как эту связку делать я что-то не соображу.
Так-то я понимаю, что если флаг поднять, то доклевиваем ещё вот такое вот условие. Но вот как это именно накодить - буксую
Я решил чуть более изящно