PowerShell 技能连载 - 排序技巧(第 2 部分)
在上一个技能中,我们展示了 Sort-Object 如何对多个属性进行排序,以及如何使用哈希表分别控制每个属性的排序方向。不过,哈希表还可以做更多的事情。
例如,哈希表键 “Expression
“ 可以是一个脚本块,然后针对您要排序的每个项目执行该脚本块。脚本块的结果决定了排序顺序。
这就是为什么这行代码每次都会以不同的方式重新排列数字列表:
1 | 1..10 | Sort-Object -Property @{Expression={ Get-Random }} |
本质上,本示例使用 Get-Random
的随机结果对数字列表进行随机排序。这可能很有用,即当您使用密码生成器并希望随机分配脚本计算的字符时:
1 | # compose password out of these |
正如您在实际示例中看到的,Sort-Object
还接受一个简单的脚本块,它表示哈希表的 “Expression
“ 键。两行的工作方式相同(但当然会产生不同的随机结果):
1 | 1..10 | Sort-Object -Property @{Expression={ Get-Random }}1..10 | Sort-Object -Property { Get-Random } |
PowerShell 技能连载 - 排序技巧(第 2 部分)