【发布时间】:2014-08-22 13:53:02
【问题描述】:
我有 2 个 csv 文件,需要创建第三个。
csv_1(只有 1 列)
USERNAME
guy1
guy2
guy3
csv_2
"ID","USERNAME","GROUPU"
"1","guyA","Default"
"2","guy1","Default"
"3","guyB","Default"
"4","guy3","Default"
"5","guyC","Default"
对于比较这两个表的输出,我希望看到:
USERNAME,ID
guy1,2
guy3,4
我试过这个,它转储了太多数据(多次列出所有条目)
$file1 = Import-Csv csv_1.csv
$file2 = Import-Csv csv_2.csv
foreach ($line in $file1){
$U1 = $line.User
foreach ($line in $file2)
$U2 = $line.USERNAME
$I2 = $line.ID
If ($U1 = $U2){
$x = $U2+","+$I2
ac temp.csv$x
}
}
}
我在 ac temp.csv $x 行之后添加了一个 break:outside 行,但它只多次列出了 1 个条目。
我也尝试过这个(基于this 条目):
$file1 = Import-Csv csv_1.csv
$file2 = Import-Csv csv_2.csv
ForEach($Record in $file1){
$MatchedValue = (Compare-Object $file2 $Record -Property "USERNAME" -IncludeEqual -ExcludeDifferent -PassThru).value
$Record = Add-Member -InputObject $Record -Type NoteProperty -Name "SQLID" -Value $MatchedValue
}
$file1 #|Export-Csv ".\Combined.csv" -NoTypeInformation
但在 SQLID 列中没有得到任何内容,并且它在 $file1 中包含了一些不在 $file2 中的值。我认为缺少 SQLID 值是因为我需要在那里添加一个变量(-value 只是 $matchedValue,它只是来自 $file1 的行),但我不确定如何从正确的记录中获取变量$file2.
建议?
【问题讨论】:
标签: powershell