Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 通过Powershell将两个csv的列合并为一个csv_Arrays_Shell_Powershell_Csv_Integer - Fatal编程技术网

Arrays 通过Powershell将两个csv的列合并为一个csv

Arrays 通过Powershell将两个csv的列合并为一个csv,arrays,shell,powershell,csv,integer,Arrays,Shell,Powershell,Csv,Integer,如果有人能帮我解决这个问题,有个小虫子让我发疯了,如果有人能指出我的问题所在,那就太好了 我有两个以逗号分隔的.csv文件,第一个文件的结构如下,但记录更多: Name Count C:\users\user1\documents, .docx 12 C:\users\user1\documents, .xlsx 5 第二个csv的结构如下: FileSize 3456 5682 我正在尝试选择第一个csv中的两

如果有人能帮我解决这个问题,有个小虫子让我发疯了,如果有人能指出我的问题所在,那就太好了

我有两个以逗号分隔的.csv文件,第一个文件的结构如下,但记录更多:

Name                               Count
C:\users\user1\documents, .docx     12
C:\users\user1\documents, .xlsx     5
第二个csv的结构如下:

FileSize
 3456
 5682
我正在尝试选择第一个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

有人能帮忙吗?我会非常感激的

*编辑
我只想补充一点,将文件大小与文件扩展名匹配并不重要,因为由于我的主shell脚本将原始数据拆分为两个单独的CSV,所以这不是一个因素。

您无法添加到数组,您需要使用新属性扩展原始对象:

$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

天哪,每天都是上学的日子。我现在知道如何使用extend函数应用新属性。非常感谢你对于你的快速反应,真是个家伙:-。没问题,老兄-很乐意帮忙: