使用csv作为输入运行powershell命令

时间:2011-04-26 01:56:46

标签: powershell csv windows-live-id

我有一个看起来像

的csv
  

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

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

(其中*x*被csv中的值替换。

在csv文件的每一行上。

我该怎么做?

3 个答案:

答案 0 :(得分:23)

$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文件。

答案 1 :(得分:3)

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

答案 2 :(得分:-5)

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

组合Netapp命令:

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

get-navol | Get-NaSnapshotSchedule | Export-Csv -path d:\ something.csv

在当前值中导入csv读数并为每列分配标签。

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

import-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” }

优秀的东西!!!

请注意,“标签”应该有一个下划线 - 无论出于什么原因它都没有反映在页面中所以美元($)下划线(_)点(。)标签