我希望用数字对输出进行排序,并在每个输出的末尾加上数字。
Get-ADComputer -Filter * -SearchBase "OU=ComputerOU,DC=dc,DC=com" -Properties * | Select-Object -ExpandProperty Name
What i would like:
QCL-00010
JPL-00011
TUL-00012
TUL-00013
QCL-00014
What i have:
JPL-00011
QCL-00010
QCL-00014
TUL-00012
TUL-00013提前谢谢你
发布于 2021-06-14 19:03:01
如果OU中的每一台计算机都与术语匹配,我将只使用Sort-Object和一些相当标准的文本处理的计算属性:
Get-ADComputer -Filter * -SearchBase "OU=ComputerOU,DC=dc,DC=com" |
Sort-Object -Property @{e={$_.Name.Substring($_.Name.IndexOf('-') + 1)}} |
Select-Object -ExpandProperty Name此外,除非您必须使用-Properties *命令,否则您应该避免使用Get-AD*命令。默认情况下返回Name。
发布于 2021-06-14 19:04:45
有几种方法可以这样做,这在一定程度上取决于格式的静态程度。
$Names = @(
'JPL-00011'
'QCL-00010'
'QCL-00014'
'TUL-00012'
'TUL-00013'
)
$Names | Sort-Object {[Void]($_ -match "(\d{5}$)"); $matches[1]}在这里,我使用matches集合作为排序表达式。
https://stackoverflow.com/questions/67975698
复制相似问题