我发现以下代码用于从文本文件中读取哈希表key=value
pairs.
$value = Get-Content $Path | Out-String | ConvertFrom-StringData
尽管如何以相同的格式将哈希表写回文本文件,但我还没有找到逆操作。我使用下面的代码
$values.GetEnumerator() | ForEach-Object { "{0}={1}" -f $_.Name,$_.Value } | Set-Content $Path
效果很好。我只是想知道是否有一些更直接的解决方案。
我不知道。这已被问到before https://stackoverflow.com/questions/60862697/convert-hashtable-back-to-string-data-in-efficient-way.
你的解决方案看起来不错。您可以将代码转换为脚本 cmdlet:
function ConvertTo-StringData {
[CmdletBinding()]
param(
[Parameter(Mandatory, Position = 0, ValueFromPipeline)]
[HashTable[]]$HashTable
)
process {
foreach ($item in $HashTable) {
foreach ($entry in $item.GetEnumerator()) {
"{0}={1}" -f $entry.Key, $entry.Value
}
}
}
}
Example:
$hashtable = Get-Content $path | ConvertFrom-StringData
$hashtable | ConvertTo-StringData | Set-Content $path
# or
ConvertTo-StringData $hashtable | Set-Content $path
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)