PowerShell 排序对象
Rohan Timalsina
2024年2月16日
PowerShell 有一个方便的 cmdlet Sort-Object
可以根据对象的属性值对对象进行排序。它可以按升序或降序对对象进行排序。
当命令中没有指定排序属性时,它会尝试使用第一个输入对象的默认排序属性。要排序的对象通过管道传送到 Sort-Object
。
本教程将教你使用 PowerShell 的 Sort-Object
cmdlet 对对象进行排序。
使用 Sort-Object
Cmdlet 在 PowerShell 中对目录内容进行排序
以下示例对目录中的文件和子目录进行排序:C:\New
。
Get-ChildItem C:\New | Sort-Object
输出:
在上述命令中,Get-ChildItem
cmdlet 获取目录 C:\New
中的文件和子目录。输出对象通过管道传送到 Sort-Object
cmdlet,该 cmdlet 按默认属性 Name
对内容进行排序。
你可以使用 -Property
参数来指定属性名称。
以下示例按属性 Length
对 C:\New
目录中的文件和子目录进行排序。
Get-ChildItem C:\New | Sort-Object -Property Length
输出:
默认排序顺序是升序。因此,你必须使用 -Descending
参数按降序对对象进行排序。
以下示例根据属性 LastWriteTime
以降序对目录 C:\New
中的内容进行排序。
Get-ChildItem C:\New | Sort-Object -Property LastWriteTime -Descending
输出:
在 PowerShell 中使用 Sort-Object
Cmdlet 对数组元素进行排序
以下命令创建一个包含多个字符串的数组变量:
$array = "apple","car","book","apple","tree"
以下示例按字母升序对数组字符串进行排序:
$array | Sort-Object
输出:
apple
apple
book
car
tree
使用 -Unique
参数,你可以删除重复的元素并仅获取唯一的元素。
$array | Sort-Object -Unique
输出:
apple
book
car
tree
同样,你可以将多个数字存储在一个数组中,并使用 Sort-Object
按升序或降序排列它们:
$num = 1,2,5,7,89,54,35
接下来,将数组对象通过管道传递给 Sort-Object
:
$num | Sort-Object
输出:
1
2
5
7
35
54
89
现在你应该知道如何在 PowerShell 中对对象进行排序并按顺序显示它们。有关详细信息,请参阅 Sort-Object
的文档。
作者: Rohan Timalsina