我有多项服务。假设我从A开始。当我执行
Get-Service A*
- 它将服务显示为以A开头的输出。
我正在排序完整的输出,除了一个,并希望它在排序后位于我的列表顶部。我正在使用以下命令。
Get-Service -DisplayName A* |Sort-Object {$_.Name -ne 'AK'}
以排序方式列出所有输出, AK 位于顶部如下所示。
AK
AN
AR
AS
等等。这只是将AK放在首位并对其他人进行排序。我想为2项服务做同样的事情。 AK然后AR(假设) - 这两者应始终在AK和AR顺序顶部,然后其他服务需要排序。如何在 AR 的现有代码中添加此内容。
答案 0 :(得分:1)
尝试使用-notin
运算符,您可以指定一个排除数组:
Get-Service A* | Sort-Object {$_.name -notin "AK","AR"}
这样,AK和AR服务将位于排序列表之上
编辑:对于V2简单易行:
Get-Service A* | Sort-Object {"AK","AR" -notcontains $_.name}
答案 1 :(得分:1)
你需要-notin和():
'AK','AN','AR','AS' | sort {$_ -notin ('AN', 'AS')}
或者使用PS 2.0:
'AK','AN','AR','AS' | sort {[Array]::IndexOf(('AN', 'AS'), $_) -eq -1}
或(感谢@Mathias):
'AK','AN','AR','AS' | sort {('AN', 'AS') -notcontains $_}