gpt4 book ai didi

arrays - ConvertFrom-StringData无法转换为哈希表

转载 作者:行者123 更新时间:2023-12-03 01:13:04 25 4
gpt4 key购买 nike

我只是尝试使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)传递了一个数组-没有任何改善。有人可以给我一些提示吗?

最佳答案

抱歉,误导您了。您遇到的问题是,由于Get-Content,您将获得一个单键哈希表数组。对于我认为您正在寻找的内容,您应该将文件作为一个字符串读入。假设您至少具有PowerShell v3:

$logins = Get-Content -Path $loginsFileName -Raw | ConvertFrom-StringData;

这是您获得了一个哈希表,就像哈希表数组一样。因为PowerShell很好地将输出分组,所以这让我一阵子。
-Raw是3.0的功能。如果您没有访问3.0的权限,那么上述两种解决方案都足够。
$logins = Get-Content -Path $loginsFileName | Out-String | ConvertFrom-StringData;
$logins = ((Get-Content -Path $loginsFileName) -join "`r`n") | ConvertFrom-StringData;

关于arrays - ConvertFrom-StringData无法转换为哈希表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35369001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com