чтение двух разных строк одной и той же строки из CSV

#powershell

#powershell

Вопрос:

Извините, я новичок в PowerShell и для этого базового.

У меня есть файл CSV с этим содержимым и еще несколькими строками, и я хотел прочитать каждую строку из двух переменных (имя, пользователь) и запустить командлет, как показано ниже.

 ~# cat test.scv

Name, User
mycomputer1, John
mycomputer2, Jake
….
….
mycomputer100, Susan
 

Я использовал Import-CSV для импорта файла.

 $csv = Import-CSV “X:test.csv"
 

Это приведет к:

 Name            User
———             ——— 
mycomputer1     John
mycomputer2     Jake
..
..
mycomputer100   Susan
 

Как мне изменить этот скрипт, чтобы читать каждую строку и использовать оба значения (имя, пользователь) в этой строке для запуска командлета Connect-Server по одному за раз?

 Connect-Server –Server mycomputer1 –User John
Connect-Server –Server mycomputer2 –User Jake
…
…
Connect-Server –Server mycomputer100 –User Susan
 

Ответ №1:

Попробуйте это:

 Import-Csv C:temppscs.txt | ForEach-Object { Connect-Server -Server $_.Name -User $_.User }
 

Комментарии:

1. Спасибо шутеру. Кажется, это приведет к одновременному запуску сервера connect.. Я хотел бы иметь Connect-server на mycomputer1 вместе с первым пользователем John, а затем распечатать что-то промежуточное, а затем подключиться к mycomputer2. Я думаю, что это приведет к выполнению «connect-server» для всех экземпляров одновременно,

2. Отсутствовал на собрании, поэтому не смог ответить вам вовремя.

Ответ №2:

Решение «The Shooter» лучше, но вы тоже можете сделать так:

 $csv = Import-CSV "C:temptest.csv"     
foreach ($row in $csv)
{
    Connect-Server -Server $row.Name -User $row.User 
}
 

Комментарии:

1. Спасибо Esperento. Похоже, это работает так, как ожидалось, и то, что мне требовалось. Я мог бы использовать больше команд в операторе foreach перед подключением к следующему компьютеру.