13

我有一个看起来像的 csv

姓名、电子邮件、地址
姓名、电子邮件、地址
姓名、电子邮件、地址

我想跑步 New-Mailbox -Name "*Name*" -WindowsLiveID *email* -ImportLiveId

(其中*x*替换为 csv 中的值)。

在 csv 文件的每一行上。

我怎样才能做到这一点?

4

3 回答 3

24
$csv = Import-Csv c:\path\to\your.csv
foreach ($line in $csv) {
    New-Mailbox -Name $line.Name -WindowsLiveID $line.Email -ImportLiveId
}

csv 的第一行必须是 Name,Email,Address

如果您不能在 CSV 中包含标题,您还可以拥有:

$csv = Import-Csv c:\path\to\your.csv -Header @("Name","Email","Address")

-Header 不会以任何方式修改 csv 文件。

于 2011-04-26T02:05:41.127 回答
3
import-csv .\file.csv  -header ("first","second","third") | foreach{New-Mailbox -Name $_.first -WindowsLiveID $_.second -ImportLiveId}
于 2011-04-26T02:09:24.023 回答
-5

这是我见过的一些最有用的信息——它让我的工作变得轻松多了!!!

结合 Netapp 命令:

从控制器获取卷,获取所述卷的快照计划,然后导出到 csv:

获取navol | 获取 NaSnapshotSchedule | 导出-Csv -path d:\something.csv

导入当前值的 csv 读数并为每列分配一个标签。

对于每个对象,通过重新使用 5 个可用列/数据字段中的 4 个来创建一个新计划

导入-csv d:\something.csv -header ("label1","label2","label3","label4","label5") | foreach {Set-naSnapshotschedule $ .label1 -Weeks $ .label2 -Days $ .label3 -Hours $ .label4 -Whichhours "1,2,3,4,5"}

优秀的东西!

请注意,“标签”应该有一个下划线 - 无论出于何种原因它没有反映在页面中,所以 Dollar($)Underscore(_)Dot(.)Label

于 2013-12-09T02:14:01.933 回答