gpt4 book ai didi

PowerShell 自定义顺序排序

转载 作者:行者123 更新时间:2023-12-02 11:26:16 25 4
gpt4 key购买 nike

我有一个简单的脚本,它运行 3rd 方应用程序的 cmdlet 并输出一个包含 3 列的表 - Name , Result , JobName . Result只包含三个值之一:Success , Warning , 或 Failed .

输出 :

Name      Result   JobName                          
---- ------ -------
server1 Success servers-A
server2 Success servers-A
server3 Warning servers-A
server4 Success servers-A
server5 Warning servers-B
server6 Success servers-B
server7 Failed servers-C
server8 Failed servers-C

我想做的是按 Result 对表格进行排序列,但按以下自定义顺序(重要性顺序): Failed , Warning ,然后 Success .

示例
Name    Result  JobName    
---- ------ -------
server7 Failed servers-C
server8 Failed servers-C
server3 Warning servers-A
server5 Warning servers-B
server1 Success servers-A
server2 Success servers-A
server4 Success servers-A
server6 Success servers-B

如何做到这一点?

最佳答案

您可以使用 Array.IndexOf() ,它有效地将字符串转换为数字:

$importance = "Failed", "Warning", "Success"

$result | Sort-Object { $importance.IndexOf($_.Result) }

捕获: Result 中的任何意外值会排在最前面,因为 IndexOf对于找不到的值,将返回 -1。

测试:
$importance = "Failed", "Warning", "Success"

$list = @(
@{ Result = "Warning" }
@{ Result = "Success" }
@{ Result = "Failed" }
)

$list | Sort-Object { $importance.IndexOf($_.Result) }

结果:

名称值
---- -----
结果失败
结果警告
结果成功

关于PowerShell 自定义顺序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48701384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com