我有一个带有扩展名的文件扩展名哈希表
像这样:
$FileExtensions = @{".foo"=4;".bar"=5}
Function HashConvertTo-String($ht) {
foreach($pair in $ht.GetEnumerator()) {
$output+=$pair.key + "=" + $pair.Value + ";"
}
$output
}
$hashString = HashConvertTo-String($FileExtensions)
$hashString.TrimEnd(';') -eq ".foo=4;.bar=5"
最后一行应返回$ true
这可行,但是正在寻找一种更优雅的方式(删除结尾;是可选的)
我想我真正想要的是哈希表的-join或类似的东西
想法???
PowerShell不会自动枚举哈希表,因此您必须调用GetEnumerator()
或Keys
属性。在那之后,有一些选择。首先,使用$OFS
Ouptut字段分隔符。当数组转换为字符串时使用此字符串。默认情况下是,""
但是您可以更改它:
$FileExtensions = @{".foo"=4;".bar"=5}
$OFS =';'
[string]($FileExtensions.GetEnumerator() | % { "$($_.Key)=$($_.Value)" })
接下来使用-join运算符:
$FileExtensions = @{".foo"=4;".bar"=5}
($FileExtensions.GetEnumerator() | % { "$($_.Key)=$($_.Value)" }) -join ';'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句