Извлечь каждую строку из ячейки в файле CSV, который имеет несколько строк - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть CSV-файл с именем столбца «Пользователи».Этот столбец имеет 3 строки в одну ячейку

Пример:

Domain\User0
Domain\User1
Domain\Group
$entry = Import-Csv Input.csv | select -First 1 | %{$_.Users}

$user0 = $entry[0]
$user1 = $entry[1]
$group = $entry[2]

Я получаю вывод в виде:

PS> Write-Host $user0 

Domain\User0
Domain\User1
Domain\Group

PS> Write-Host $user1

PS> Write-Host $group

Мне нужен вывод, например

PS> Write-Host $user0 
Domain\User0

PS> Write-Host $user1
Domain\User1

PS> Write-Host $group
Domain\Group

Ответы [ 4 ]

0 голосов
/ 15 апреля 2019

Просто сделай это:

$user0, $user1, $Group=(Import-Csv C:\temp\Input.csv).Users
0 голосов
/ 15 апреля 2019

Я полагаю, что это будет проблема CRLF.

$entry = ((Get-Content File.csv) -replace "(?<!\r)\n","`r`n" | ConvertFrom-Csv).Users

$user0 = $entry[0]
$user1 = $entry[1]
$group = $entry[2]

Вам нужно будет заменить строки только символом LF на CRLF, а затем прочитать из формата CSV.

0 голосов
/ 15 апреля 2019

Если ваш (действительный) контент Input.csv выглядит следующим образом:

> Get-Content .\Input.csv
"Users"
"Domain\User0
Domain\User1
Domain\Group"

$user0,$user1,$group = (Import-Csv Input.csv)[0].Users -split '\r?\n'

Будет разделять и напрямую назначать переменные

0 голосов
/ 15 апреля 2019

Разделить поле на новые строки:

$entry = Import-Csv Input.csv |
         Select-Object -First 1 |
         ForEach-Object {$_.Users -split '\r\n' }

или проще:

$entry = (Import-Csv Input.csv | Select-Object -Expand Users -First 1) -split '\r\n'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...