запустить команду powershell, используя csv в качестве входных данных - PullRequest
12 голосов
/ 26 апреля 2011

У меня есть CSV, который выглядит как

Имя, адрес электронной почты, адрес
Имя, адрес электронной почты, адрес
Имя, адрес электронной почты, адрес

IЯ хочу запустить New-Mailbox -Name "*Name*" -WindowsLiveID *email* -ImportLiveId

(где *x* заменяется значением из CSV).

в каждой строке в файле CSV.

Как можноЯ делаю это?

Ответы [ 3 ]

23 голосов
/ 26 апреля 2011
$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 голосов
/ 26 апреля 2011
import-csv .\file.csv  -header ("first","second","third") | foreach{New-Mailbox -Name $_.first -WindowsLiveID $_.second -ImportLiveId}
0 голосов
/ 09 декабря 2013

Это одна из наиболее полезной информации, которую я когда-либо видел - она ​​просто упростила мою работу !!!

Объединение команд Netapp:

получение томов из контроллера, получениерасписание моментальных снимков для указанных томов и экспорт в csv:

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

Импортировать чтение csv в текущие значения и назначить каждому столбцу метку.

Для каждого объекта создайте новое расписание, повторно применив 4из 5 доступных столбцов / полей данных

import-csv d: \ something.csv -header ("label1", "label2", "label3", "label4", "label5") |foreach {Set-naSnapshotschedule $ .label1 -Недели $ .label2 -Дни $ .label3 -Час $ .label4 -Что-то "1,2,3,4,5"}

ОТЛИЧНЫЙ ПЕРСОНАЛ !!!

Обратите внимание, что у «Ярлыков» должно быть подчеркивание - по какой-то причине оно не отражается на странице, поэтому Доллар ($) Подчеркивание (_) Точка (.) Этикетка * +1021 *

...