通过Powershell将两个csvs的列合并为一个csv
Combining columns of two csvs into one csv via Powershell
可以请一些人指导这件事,有一个小错误让我发疯,如果有人能指出我的问题是什么,那就太好了。
我有两个 .csv(逗号分隔)文件,第一个文件的结构如下(但有更多记录):
Name Count
C:\users\user1\documents, .docx 12
C:\users\user1\documents, .xlsx 5
第二个 csv 结构如下:
FileSize
3456
5682
我正在尝试 select 第一个 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 文件,但它仍在尝试 select 来自我的主 csv 中不存在的列的结果,该列本质上是 returns在这种情况下为 NULL 或“0”。
谁能帮忙,我将不胜感激。
*编辑
我只想补充一点,将文件大小与文件扩展名相匹配并不重要,因为这将始终准确,这要归功于我的主要 shell 脚本将原始数据拆分为两个单独的 csvs,因此这不是一个因素。
您不能添加到数组,您需要扩展具有新属性的原始对象:
$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
可以请一些人指导这件事,有一个小错误让我发疯,如果有人能指出我的问题是什么,那就太好了。
我有两个 .csv(逗号分隔)文件,第一个文件的结构如下(但有更多记录):
Name Count
C:\users\user1\documents, .docx 12
C:\users\user1\documents, .xlsx 5
第二个 csv 结构如下:
FileSize
3456
5682
我正在尝试 select 第一个 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 文件,但它仍在尝试 select 来自我的主 csv 中不存在的列的结果,该列本质上是 returns在这种情况下为 NULL 或“0”。
谁能帮忙,我将不胜感激。
*编辑 我只想补充一点,将文件大小与文件扩展名相匹配并不重要,因为这将始终准确,这要归功于我的主要 shell 脚本将原始数据拆分为两个单独的 csvs,因此这不是一个因素。
您不能添加到数组,您需要扩展具有新属性的原始对象:
$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