我有一个带计数的文件扩展名哈希表
像这样:
$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"
Run Code Online (Sandbox Code Playgroud)
最后一行应返回$ true
这可行,但寻找更优雅的方式(删除尾随;是可选的)
我想我真正想要的是哈希表或类似的东西
思考???
Jas*_*irk 27
PowerShell不会自动枚举哈希表,因此您将被迫调用GetEnumerator()或使用该Keys属性.之后,有几个选择.首先,使用$OFSOuptut Field Seperator.将数组转换为字符串时使用此字符串.默认情况下,这是""您可以更改它:
$FileExtensions = @{".foo"=4;".bar"=5}
$OFS =';'
[string]($FileExtensions.GetEnumerator() | % { "$($_.Key)=$($_.Value)" })
Run Code Online (Sandbox Code Playgroud)
接下来使用-join运算符:
$FileExtensions = @{".foo"=4;".bar"=5}
($FileExtensions.GetEnumerator() | % { "$($_.Key)=$($_.Value)" }) -join ';'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10899 次 |
| 最近记录: |