gpt4 book ai didi

powershell - 如何比较字符串末尾的数字值?

转载 作者:行者123 更新时间:2023-12-02 23:52:58 26 4
gpt4 key购买 nike

我用UPN创建了100个云用户,并将CloutTest1命名为CloudTest100。
如何根据他们的人数过滤/获得这些用户?例如30至40岁的使用者

我试过了

get-msoluser -all | ? {$_.userprincipalname.replace('CloudTest','') -lt 50} | select DisplayName | Sort-Object -Descending

结果
DisplayName 

CloudTest25
CloudTest16
CloudTest32
CloudTest44
CloudTest45
CloudTest37
CloudTest1
CloudTest12
CloudTest26
CloudTest4
CloudTest38
CloudTest34
CloudTest11
CloudTest31
CloudTest35
CloudTest19
CloudTest24
CloudTest39
CloudTest49
CloudTest42
CloudTest36
CloudTest10
CloudTest15
CloudTest18
CloudTest47
CloudTest41
CloudTest27
CloudTest20
CloudTest30
CloudTest2
CloudTest46
CloudTest40
CloudTest22
CloudTest48
CloudTest17
CloudTest23
CloudTest13
CloudTest3
CloudTest43
CloudTest28
CloudTest21
CloudTest100
CloudTest5
CloudTest33
CloudTest14
CloudTest29

我不确定为什么不排序,也不知道“100”来自何处。

如何获得30到45之间的数字?为什么上面的那些不排序?

最佳答案

如前所述,您希望按字母顺序对数字进行排序。
这就是为什么必须使用[int]将包含数字的字符串转换为整数的原因。

话虽如此,UserPrincipal名称具有“Internet样式”格式,例如CloudTest21@YourDomain.com(您可以阅读有关here的信息)

在您的测试情况下,我宁愿根据Where-Object属性执行DisplayName:

Get-MsolUser -All | Where-Object {[int]($_.DisplayName -replace '^CloudTest', '') -lt 50} | 
Select-Object DisplayName,
@{Name = 'UserNumber'; Expression = {[int]($_.DisplayName -replace '^CloudTest', '')}} |
Sort-Object -Property UserNumber -Descending |
Select-Object DisplayName

如果您真的想通过 UserPrincipalName进行比较,则可以执行以下操作:
Get-MsolUser -All | 
Where-Object {[int]($_.UserPrincipalName.Split("@")[0] -replace '^CloudTest', '') -lt 50} |
Select-Object DisplayName,
@{Name = 'UserNumber'; Expression = {[int]($_.UserPrincipalName.Split("@")[0] -replace '^CloudTest', '')}} |
Sort-Object -Property UserNumber -Descending |
Select-Object DisplayName

如果您将名称中的数字使用前导零作为开头,则可以使事情变得更容易
CloudTest001
CloudTest002
...
CloudTest100

这样,即使是字母数字排序也可以正常显示。

忘了说:如果要让用户使用某个范围内的数字,则可以简单地将 -lt 50子句中的 -in 30..40替换为 Where-Object

希望能有所帮助

关于powershell - 如何比较字符串末尾的数字值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54417372/

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