-1

我正在尝试以有效的方式将哈希表转换回键值对。目前我正在使用这个:

$kv = ""
$hash.GetEnumerator() | ForEach {
  $kv += "$($_.Name)=$($_.Value)"
}

有没有办法直接将哈希表转换为键值对,或者我的意思是字符串数据。有ConvertFrom-StringData将键值对转换为哈希表。有没有相反的方法,直接将哈希表转换为键值对?

EG(键值对)

a=1
b=2
c=3
4

1 回答 1

2

我为这个类似的问题建议了这个脚本 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
            }
        }
    }
}

例子:

ConvertTo-StringData $hash 
# or
$hash | ConvertTo-StringData
于 2020-09-29T10:57:24.627 回答