2

我知道标题听起来令人困惑,但是一旦我描述了这个,我确信有一种非常简单的方法可以执行我需要做的事情。我对 PowerShell 非常陌生,并且正在尝试执行一项似乎很难为 Web 找到好的答案的特定任务。

在过去的几天里,我一直在搜索连接数据和将文件连接在一起的方法,但没有任何内容足以针对这项任务。所有示例都显示了如何显示数据,但没有任何示例循环并添加数据以创建新的 csv 文件。如果有的话,我已经过度研究了这个问题,以至于不得不提出这个信息,看看我可以在哪里让我的大脑摆脱所有我已经尝试过的无用选项......

我有两个 csv 文件。我称它们为 csv,但它们实际上只是每列信息。

文件:

用户.csv

办公室.csv

Users.csv文件有一个网络用户名列表。Offices.csv文件包含与办公室位置相对应的数字列表

我想要发生的是使用一个循环,该循环将从 users.csv 文件中获取每个用户,并在单独的 csv 文件中创建一个新行,将每个办公室添加到其中。

例子:

用户.csv

NTNAME
domain\user1
domain\user2
domain\user3

办公室.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

您可以提供的任何帮助将不胜感激...

4

1 回答 1

1

借用 Shay 令人敬畏的CSV 字段枚举代码

$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
于 2013-08-05T17:21:21.247 回答