我知道标题听起来令人困惑,但是一旦我描述了这一点,我肯定有一种非常简单的方法来执行我需要做的事情。我是PowerShell的新手,我正在尝试执行一项特定的任务,似乎很难为Web找到一个好的答案。
过去几天我一直在搜索连接数据和将文件连接在一起的方法,但没有任何具体到这个任务的内容。所有示例都显示了如何显示数据,但没有任何内容循环并将数据添加到一起以创建新的csv文件。如果有的话,我已经过度研究了这个问题,不得不提出这个信息,看看我能用我已经尝试的所有无用选项让我的脑子变得杂乱无章......
我有两个csv文件。我把它们称为csv,但它们实际上只是一列信息。
文件:
Users.csv
Offices.csv
Users.csv 文件包含网络用户名列表。 Offices.csv 文件包含与办公地点对应的数字列表。
我想要发生的是使用一个循环,它将从users.csv文件中获取每个用户,并在单独的csv文件中创建一个新行,并将每个办公室添加到其中。
实施例
Users.csv
NTNAME
domain\user1
domain\user2
domain\user3
Offices.csv
OFFICES
0001
0023
0043
0067
合并后,我希望csv文件看起来像这样:
NTNAME,OFFICES
domain\user1,0001
domain\user1,0023
domain\user1,0043
domain\user1,0067
domain\user2,0001
domain\user2,0023
domain\user2,0043
domain\user2,0067
domain\user3,0001
domain\user3,0023
domain\user3,0043
domain\user3,0067
非常感谢您提供的任何帮助......
答案 0 :(得分:2)
借用Shay真棒CSV field enumeration code:
$offices = Import-Csv 'C:\path\to\offices.csv'
Import-Csv 'C:\path\to\users.csv' | % {
foreach ($prop in $_.PSObject.Properties) {
$offices | select @{n=$prop.Name;e={$prop.Value}}, OFFICES
}
} | Export-Csv 'C:\path\to\combined.csv' -NoTypeInformation