【发布时间】:2016-05-23 23:31:53
【问题描述】:
我只是尝试调整 the scripting guy's example 以从文本文件中读取数据并使用 ConvertFrom-StringData 解析哈希表:
$PSVersionTable.PSVersion;
[String] $loginsFileName = "$HOME\Logins.txt";
Get-Content $loginsFileName;
[Hashtable] $logins = Get-Content -Path $loginsFileName | ConvertFrom-StringData;
Write-Host got $logins.count lines from $loginsFileName;
$logins.GetEnumerator() | Sort-Object Name;
我搞砸了:
Major Minor Build Revision
----- ----- ----- --------
3 0 -1 -1
Lisa=GanzGeheim
Susanne=ganzgeheim
Fritz=geheim
Hans=Geheim
Der Wert "System.Object[]" vom Typ "System.Object[]" kann nicht in den Typ "System.Collections.Hashtable" konvertiert werden.
In Zeile:11 Zeichen:1
+ [Hashtable] $logins = Get-Content -Path $loginsFileName | ConvertFrom-StringData ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : MetadataError: (:) [], ArgumentTransformationMetadataException
+ FullyQualifiedErrorId : RuntimeException
got 0 lines from E:\Users\Christian\Logins.txt
我的猜测:管道出了问题。我试图强调 Get-Content 通过包含 (Get-Content -Path $loginsFileName) 提供了一个数组——没有任何改进。有人可以给我一些提示吗?
【问题讨论】:
标签: arrays string powershell hashtable