У меня есть CSV-файл, в котором мне нужно добавить новый столбец. Я делаю это с помощью import-csv, а затем добавляю свойство к объектам, прежде чем записать его обратно в csv с помощью export-csv.
Каким-то образом это не работает, как ожидалось. Я взял всю реальную функциональность и сократил ее до следующего фрагмента:
$findReplaceList = Import-Csv -Path $mappingListPath -Delimiter ';'
Import-Csv $sourceFile.FullName |
Select-Object *, @{Name = 'column3'; Expression =
{ $newKey = $_."Issue key" ; $newKey }
} |
Export-Csv $outputFullFileName -NoTypeInformation -Delimiter ';'
обратите внимание, что в этом коде реальный расчет выражения заменен чем-то очень простым.
здесь,с
$newKey = $_."Issue key"
Я просто пытаюсь взять значение в столбце «ключ выпуска» и использовать его для вновь добавленного столбца.
Каким-то образом $ newKey всегда равен NULL - хотя $ _. «Ключом выдачи» не является?
Что я делаю не так? Реальный код для $ newKey будет выглядеть следующим образом:
{$newKey = $_.$FieldsToSelectFromTargetFilesIntoMappingFile[0]; (@($findReplaceList).where( { $_.$FieldsToSelectFromTargetFilesIntoMappingFile[0] -eq $newKey })).$FieldsToSelectFromTargetFilesIntoMappingFile[3] }
Файл отображения (ссылка на $ mappingListPath) представляет собой простой CSV-файл, подобный следующему:
изображение таблицы простого примера отображения