将文本文件中的字符串转换为powershell中的数组

将文本文件中的字符串转换为powershell中的数组,powershell,Powershell,我认为这很容易做到,但我现在想不出来,继续寻找。 如何从文本文件创建对象、哈希表或数组。文本文件为: FN:Jan Jansen Email:jj@example.com FN: Name Two Email:name@something.co 谢谢。 Bluraydisk如果您想将txt文件转换为name=email的哈希表,则需要执行以下操作: $a = @() $b = @{} ,((gc .\myfile.txt -ReadCount 2) ) | % { $a+=$_ } $a

我认为这很容易做到,但我现在想不出来,继续寻找。 如何从文本文件创建对象、哈希表或数组。文本文件为:

FN:Jan Jansen
Email:jj@example.com
FN: Name Two
Email:name@something.co
谢谢。
Bluraydisk

如果您想将txt文件转换为
name=email
的哈希表,则需要执行以下操作:

$a = @()
$b = @{}

,((gc .\myfile.txt -ReadCount 2) ) | % { $a+=$_ }

 $a | % { $b.add( ($_[0] -replace 'FN:').trim() , ($_[1] -replace 'Email:').trim() )}

$b # is the final hastable name=email

Name                           Value                                                                                                                                           
----                           -----                                                                                                                                           
Name Two                       name@something.co                                                                                                                               
Jan Jansen                     jj@example.com   

使用
convertfromstringdata

#Create test file:
(@'
FN:Jan Jansen
Email:jj@example.com
FN: Name Two
Email:name@something.co
'@).split("`n") |   
foreach {$_.trim()} | 
set-content .\testfile.txt

#Code sample using test file:
Get-Content .\testfile.txt -ReadCount 2 |
ForEach-Object {
  New-Object PSObject -Property  ( ConvertFrom-StringData ($_ | Out-String).replace(':','=') )
} | Format-Table -AutoSize


Email             FN        
-----             --        
jj@example.com    Jan Jansen
name@something.co Name Two  

当转换为对象/数组/哈希表时,您期望的输出是什么?我认为您应该更具体地描述您想要的内容。如果你需要一个哈希表,我想你会想解析出名字和键,如果你不知道名字或者其他什么?数组不关心重复项,因此您必须确定这是否是一个问题和/或可能性等。当您使用带有默认开关的get content时,每一行实际上已经是数组的一部分。看起来您实际上想要的是将其转换为powershell对象。到目前为止你试过什么?