powershell排序命令--Soft-Object

以下来自微软官方说明


使用Soft-Object对对象进行排序

本文内容

  1. 基本排序
  2. 使用哈希表
  3. 提示

可以使用 Sort-Object cmdlet 组织已显示的数据,使其更易于扫描。 Sort-Object 依据一个或多个属性的名称进行排序,并返回按这些属性的值进行排序的数据。

基本排序

请考虑列出当前目录中的子目录和文件的问题。 如果想要依次按 LastWriteTime 和 Name 进行排序,可键入:

PowerShell
 
Get-ChildItem |
    Sort-Object -Property LastWriteTime, Name |
    Format-Table -Property LastWriteTime, Name
输出
 
LastWriteTime          Name
-------------          ----
11/6/2017 10:10:11 AM  .localization-config
11/6/2017 10:10:11 AM  .openpublishing.build.ps1
11/6/2017 10:10:11 AM  appveyor.yml
11/6/2017 10:10:11 AM  LICENSE
11/6/2017 10:10:11 AM  LICENSE-CODE
11/6/2017 10:10:11 AM  ThirdPartyNotices
11/6/2017 10:10:15 AM  tests
6/6/2018 7:58:59 PM    CONTRIBUTING.md
6/6/2018 7:58:59 PM    README.md
...

也可通过指定 Descending 开关参数按相反顺序对对象进行排序。

PowerShell
 
Get-ChildItem |
  Sort-Object -Property LastWriteTime, Name -Descending |
  Format-Table -Property LastWriteTime, Name
输出
 
LastWriteTime          Name
-------------          ----
12/1/2018 10:13:50 PM  reference
12/1/2018 10:13:50 PM  dsc
...
6/6/2018 7:58:59 PM    README.md
6/6/2018 7:58:59 PM    CONTRIBUTING.md
11/6/2017 10:10:15 AM  tests
11/6/2017 10:10:11 AM  ThirdPartyNotices
11/6/2017 10:10:11 AM  LICENSE-CODE
11/6/2017 10:10:11 AM  LICENSE
11/6/2017 10:10:11 AM  appveyor.yml
11/6/2017 10:10:11 AM  .openpublishing.build.ps1
11/6/2017 10:10:11 AM  .localization-config

使用哈希表

可以使用数组中的哈希表按不同顺序对不同属性进行排序。 每个哈希表使用 Expression 键将属性名称指定为字符串,并使用 Ascending 或 Descending 键按 $true$false 指定排序顺序。 Expression 键是必需的。 Ascending 或 Descending 键是可选的。

下面的示例按 LastWriteTime 降序和 Name 升序对对象进行排序。

PowerShell
 
Get-ChildItem |
  Sort-Object -Property @{ Expression = 'LastWriteTime'; Descending = $true },
                        @{ Expression = 'Name'; Ascending = $true } |
  Format-Table -Property LastWriteTime, Name
输出
 
LastWriteTime          Name
-------------          ----
12/1/2018 10:13:50 PM  dsc
12/1/2018 10:13:50 PM  reference
11/29/2018 6:56:01 PM  .openpublishing.redirection.json
11/29/2018 6:56:01 PM  gallery
11/24/2018 10:33:22 AM developer
11/20/2018 7:22:19 PM  .markdownlint.json
...

还可以将 scriptblock 设置为 Expression 键。 运行 Sort-Object cmdlet 时,将执行 scriptblock 并使用结果进行排序。

下面的示例按 CreationTime 和 LastWriteTime 之间的时间跨度以降序对对象进行排序。

PowerShell
 
Get-ChildItem |
    Sort-Object -Property @{ Exp = { $_.LastWriteTime - $_.CreationTime }; Desc = $true } |
    Format-Table -Property LastWriteTime, CreationTime
输出
 
LastWriteTime          CreationTime
-------------          ------------
12/1/2018 10:13:50 PM  11/6/2017 10:10:11 AM
12/1/2018 10:13:50 PM  11/6/2017 10:10:11 AM
11/7/2018 6:52:24 PM   11/6/2017 10:10:11 AM
11/7/2018 6:52:24 PM   11/6/2017 10:10:15 AM
11/3/2018 9:58:17 AM   11/6/2017 10:10:11 AM
10/26/2018 4:50:21 PM  11/6/2017 10:10:11 AM
11/17/2018 1:10:57 PM  11/29/2017 5:48:30 PM
11/12/2018 6:29:53 PM  12/7/2017 7:57:07 PM
...

提示

可以省略 Property 参数名称,如下所示:

PowerShell
 
Sort-Object LastWriteTime, Name

此外,可以通过其内置别名 sort 来引用 Sort-Object

PowerShell
 
sort LastWriteTime, Name

用于排序的哈希表中的键可以缩写为:

PowerShell
 
Sort-Object @{ e = 'LastWriteTime'; d = $true }, @{ e = 'Name'; a = $true }

在此示例中,e 代表 Expression,d 代表 Descending,a 代表 Ascending。

为了提高可读性,可以将哈希表置于一个单独的变量中:

PowerShell
 
$order = @(
  @{ Expression = 'LastWriteTime'; Descending = $true }
  @{ Expression = 'Name'; Ascending = $true }
)

Get-ChildItem |
    Sort-Object $order |
    Format-Table LastWriteTime, Name

 

 

出处:https://learn.microsoft.com/zh-cn/powershell/scripting/samples/sorting-objects?view=powershell-7.4

=======================================================================================

powershell排序

‌在PowerShell中,可以使用Sort-Object cmdlet对数据进行排序。‌

Sort-Object的基本用法

  1. ‌按单个属性排序‌:

    powershellCopy Code
    Get-ChildItem | Sort-Object LastWriteTime, Name | Format-Table LastWriteTime, Name

    这条命令会按文件的最后写入时间(LastWriteTime)和名称(Name)对当前目录中的文件进行排序。

  2. ‌使用哈希表排序‌:

    powershellCopy Code
    Get-ChildItem | Sort-Object @{Expression='LastWriteTime'; Descending=$true}, @{Expression='Name'; Ascending=$true} | Format-Table LastWriteTime, Name

    这条命令使用哈希表来指定按最后写入时间降序和名称升序排序。

高级排序技巧

  1. ‌按多个属性排序‌:

    powershellCopy Code
    Get-ChildItem | Sort-Object LastWriteTime, Name | Format-Table LastWriteTime, Name

    这条命令按最后写入时间和名称对文件进行排序。

  2. ‌使用别名简化命令‌:

    powershellCopy Code
    Get-ChildItem | Sort-Object LastWriteTime, Name | Format-Table LastWriteTime, Name

    这条命令使用别名简化命令,效果与上述相同。

 

出处:https://www.baidu.com/s?wd=powershell%E6%8E%92%E5%BA%8F&rsv_spt=1&rsv_iqid=0xf9927649004c55d4&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_dl=ib&rsv_sug3=13&rsv_sug1=9&rsv_sug7=100

=======================================================================================

powershell排序

在PowerShell中,可以使用Sort-Object cmdlet来对数据进行排序。这个cmdlet可以接受一个或多个属性来排序,并且可以指定为升序(默认)或降序。

以下是一些基本的排序示例:

  1. 对一组数字进行排序: 

    1..10 | Sort-Object
  1. 对一组对象的属性进行排序:

    复制代码
    $objects = @(
    @{Name='Alice'; Age=30},
    @{Name='Bob'; Age=25},
    @{Name='Charlie'; Age=35}
    )
     
    $objects | Sort-Object -Property Age
    复制代码
  1. 对一组对象的多个属性进行排序:

    $objects | Sort-Object -Property LastName,FirstName
  1. 进行降序排序:

    $objects | Sort-Object -Property Age -Descending
  1. 使用自定义排序规则:

    $objects | Sort-Object -Property Name -Culture 'de-DE'

这些例子展示了如何使用Sort-Object进行基本的排序操作。根据你的具体需求,你可以调整这些示例来适应不同的数据和排序要求。

提示:AI自动生成,仅供参考

 

出处:https://www.baidu.com/s?wd=powershell%E6%8E%92%E5%BA%8F&rsv_spt=1&rsv_iqid=0xf9927649004c55d4&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_dl=ib&rsv_sug3=13&rsv_sug1=9&rsv_sug7=100

=======================================================================================

Power Shell查看进程、排序、打印出前五

PowerShell中,要查看进程并按某种标准(如CPU使用率、内存使用量等)排序并打印出前五名,你可以使用Get-Process命令配合Sort-ObjectSelect-Object命令来实现。以下是一些示例:

按CPU使用率排序

Get-Process | Sort-Object -Property CPU -Descending | Select-Object -First 5

这个命令会列出所有进程,按CPU使用率降序排序,并选择前五个进程显示。

按内存使用量排序

Get-Process | Sort-Object -Property WS -Descending | Select-Object -First 5

这里使用的是WS属性,它代表工作集(Working Set)大小,即进程当前物理内存中的页数。这个命令会按内存使用量降序排序并显示前五个进程。

按启动时间排序

如果你想要按照进程启动的时间来排序,可以使用StartTime属性:

Get-Process | Sort-Object -Property StartTime | Select-Object -First 5

注意,这里没有使用-Descending参数,因为通常我们可能对最早启动的进程感兴趣。如果你想要查看最后启动的五个进程,就加上-Descending参数。

自定义显示列

你还可以自定义Select-Object命令来显示你感兴趣的列。例如,只显示进程名和CPU使用率:

Get-Process | Sort-Object -Property CPU -Descending | Select-Object -First 5 -Property ProcessName, CPU
# 或者
ps | sort -p CPU -Descending | select -f 5 -p ProcessName, CPU

这个命令会按CPU使用率降序排序进程,并只显示进程名和CPU使用率的前五个条目。

根据你的具体需求,你可以调整这些命令来查看和排序不同的进程属性。

 

2024-12-14 20:50:27【出处】:https://blog.csdn.net/weixin_47695827/article/details/140607744

=======================================================================================

posted on   jack_Meng  阅读(41)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· DeepSeek “源神”启动!「GitHub 热点速览」
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
历史上的今天:
2023-12-14 Excel 公式SWITCH函数你用过吗?多种查找函数介绍
2022-12-14 [WPF] 使用 MVVM Toolkit 构建 MVVM 程序
2022-12-14 开发者工具|15款音视频开发者必备实用工具
2022-12-14 C#深拷贝有哪些方法实现
2021-12-14 %userprofile%\Local Settings文件夹拒绝访问怎么办
2021-12-14 关闭任务计划程序前您必须关闭所有会话框的解决方法
2021-12-14 彻底清除win10更新包的方法

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

支付宝打赏

主题色彩