2011-04-26 33 views
11

我有一个csv,看起来像使用CSV作为输入运行PowerShell命令

名称,电子邮件,地址
名称,电子邮件,地址
名称,电子邮件,地址

我想要运行 New-Mailbox -Name "*Name*" -WindowsLiveID *email* -ImportLiveId

(其中*x*被csv中的值所取代)。

在csv文件的每一行上。

我该怎么做?

回答

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

CSV的第一行是像姓名,电子邮件,地址

如果你不能在CSV的标题,你也可以有:

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

-Header没有按以任何方式修改csv文件。

3
import-csv .\file.csv -header ("first","second","third") | foreach{New-Mailbox -Name $_.first -WindowsLiveID $_.second -ImportLiveId} 
+0

确实-header添加页眉反映柱? – Hailwood 2011-04-26 02:15:11

+0

@Hailwood - 不,它不 – manojlds 2011-04-26 02:18:44

+1

是的,看到这个: http://technet.microsoft.com/en-us/library/dd347665.aspx – LanceHub 2011-04-26 02:19:31

-5

这是我见过的一些最有用的信息 - 它只是让我的工作变得如此简单!

结合NetApp的命令:

从控制器获得的体积,得到的快照时间表所述空间,并导出为CSV:

得到-navol | Get-NaSnapshotSchedule | Export-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”}

优秀东西!

请注意,“标签”应该有一个底线 - (。)不管是什么原因,它是不是在页面以美元($)下划线(_)点标签