Итак, ваша проблема в том, что @($temp1,$temp2)
не объединяет первый элемент $temp1
с первым элементом $temp2
, а вместо этого создает новую коллекцию, которая состоит из всех объектов $temp1
, за которыми следуют все$temp2
.
Поскольку $temp1
- это объекты со свойством APP
, а $temp2
- это объекты с Project
, объединять их в коллекцию не имеет смысла для экспорта в CSV.,
Если $temp1
- это мешок с яблоками, а $temp2
- это мешок с апельсинами, @($temp1,$temp2)
не скрепляет мешки, а сбрасывает их в один мешок друг на друга.
Вы можете объединить два объекта в один.У Уоррена Фрейма есть уважаемый модуль Join-Object , который можно использовать, как указал Джеймс С., но вашим двум csvs потребуется совместно использовать столбец.
Другой альтернативой является использование цикла for, затем в каждой итерации берется значение из каждой коллекции и создается новый объект с обоими значениями.
$Temp1 = (Import-csv "C:\path\APPcsv.csv" -header "APP") |
Select-Object -ExpandProperty APP
$Temp2 = (Import-csv "C:\path\ALLdb42APPs.csv"-header "NA1", "NA2", "Applications", "NA3", "Project") |
Select-Object -ExpandProperty Project
$LargestIndex = [math]::Max($temp1.count,$temp2.count)
$CombinedArray = For ($i=0; $i -le $LargestIndex; $i++) {
[pscustomobject]@{
APP = $temp1[$i]
Project = $temp2[$i]
}
}
$CombinedArray |
Export-Csv -Path "C:\path\Example.csv" -NoTypeInformation
Примечание: требуется PowerShell 3+для pscustomobject способ создания объектов.