从CSV文件中包含多行的单元格中提取每一行

时间:2019-04-15 15:52:24

标签: powershell csv

我有一个CSV文件,其列名称为Users。该列有3行1个单单元格

示例:

Domain\User0
Domain\User1
Domain\Group
 print("You are " + str(current_year  -  birth_year) + " years old.")

我得到的输出为:

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 :(得分:0)

在换行符处拆分字段:

$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'

答案 1 :(得分:0)

我相信这将是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格式读取。

答案 2 :(得分:0)

如果您的(有效)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'

将拆分并直接分配变量

答案 3 :(得分:0)

只需这样做:

$user0, $user1, $Group=(Import-Csv C:\temp\Input.csv).Users