Если я правильно понимаю ваш вопрос, вы пытаетесь превратить что-то вроде этого:
Descriptor,Field2,Field3,Field4
product,Data2,,Data4
fixture,Data2,,Data4
В это:
"Descriptor","Field2","Field3","Field4"
"product","Data2","","Data4"
"fixture","Data2","Universal","Data4"
Вот код, который сделает это.
$csv = Import-Csv abc12.psa -Delimiter ','
# 77 is 78th field (starting from 0)
$fieldName = ($csv[0] | gm | ? {$_.MemberType -eq "NoteProperty"})[77].Name
$csv | % {
if ($_.Descriptor -eq 'fixture' -and -not $_.$fieldName ) {
$_.$fieldName = "Universal"
}
}
$csv | ConvertTo-Csv -NoTypeInformation | Out-File C:\output.csv
Вот версия, которая не зависит от индекса поля:
$csv = Import-Csv abc12.psa -Delimiter ','
$fieldNames = ($csv[0] | gm | ? {$_.MemberType -eq "NoteProperty"}) | Select -ExpandProperty Name
$csv | % {
if ($_.Descriptor -eq 'fixture') {
foreach ($fieldName in $fieldNames) {
if (-not $_.$fieldName) {
$_.$fieldName = "Universal"
}
}
}
}
$csv | ConvertTo-Csv -NoTypeInformation | Out-File C:\output.csv