2015-05-27 3 views
0

Мог бы сделать с руководством некоторых органов на этом, получил небольшую ошибку, которая сводит меня с ума, и было бы здорово, если бы кто-нибудь мог указать, в чем моя проблема.Сочетание столбцов двух csvs в один csv через Powershell

У меня есть два .csv (запятые) файлы, первые структурирована следующим образом (но с большим количеством записей):

Name        Count 
C:\users\user1\documents, .docx  12 
C:\users\user1\documents, .xlsx  5 

и второй CSV структурирован следующим образом:

FileSize 
3456 
5682 

I я пытаюсь выбрать два столбца в первом csv и первом столбце во втором csv и создать новое свойство для формирования таких результатов:

Name        Count FileSize 
    C:\users\user1\documents, .docx  12  3456 
    C:\users\user1\documents, .xlsx  5   5682 

Мой код до сих пор:

$csvarray = Import-Csv -Path "C:\Support\Test02.csv" 
$csvarray2 = Import-Csv -Path "C:\Support\Test03.csv" 
$csvarray += $csvarray2 

$csvarray | Select-Object -Property {$_.Name}, {[int]$_.Count}, {[int]$_.FileSize} 

И результаты я получаю довольно разочарование:

Name        Count FileSize 
    C:\users\user1\documents, .docx  12   0 
    C:\users\user1\documents, .xlsx  5   0 
             0   3456 
             0   5682 

Я полагаю, что, хотя я создал массив, чтобы объединить эти два CSV-файлы, то все еще пытаясь выбрать результаты из столбца, который не существует в моем основном CSV, который по существу возвращает NULL или «0» в этом случае.

Может кто-нибудь помочь, я бы очень признателен этому.

* EDIT Я хотел бы добавить, что совпадение размера файла с расширением файла не имеет значения, потому что это всегда будет точно благодаря моим основным сценариям оболочки, которые разбивают исходные данные на два отдельных csvs, так что это не фактор.

ответ

0

Вы не можете добавить в массив, вам нужно продлить оригинальный объект с новыми свойствами:

$c1 = Import-Csv -Path "C:\Support\Test02.csv" 
$c2 = ... 
$c1 | % {$i=0} { $c1[$i] | Add-Member -NotePropertyName FileSize -NotePropertyValue $c2[$i++].FileSize;} 
$c1 | Export-Csv combined.csv 
+0

Booyah, каждый день это день занятий в школе. Теперь я знаю, как использовать функцию extend для применения новых свойств. Спасибо Вам большое! & за ваш быстрый ответ, какой парень :-). – unkn0wn

+0

Без проблем чувак - рад помочь :) – majkinetor