将文本文件中的字符串转换为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对象。到目前为止你试过什么?