如何在PowerShell中对文件内的数字进行升序/降序排序?
PowerShell 对文件内数字进行升序/降序排序的正确方法
你之前用的命令存在两处核心问题:
Get-ChildItem是用来遍历文件或目录的命令,根本不是读取文件内容的工具,用它来处理文件内的数字排序从逻辑上就错了Get-Content后面没指定目标文件路径,而且Sort-Object的参数用法完全错误——你把文件名当成了排序属性,这不符合PowerShell的语法规则
以下是正确的实现方法:
基础排序(仅输出结果)
- 降序排序:先读取文件内容,再将每行内容转换成整数后降序排列
Get-Content .\sorting.txt | Sort-Object { [int]$_ } -Descending
- 升序排序:升序是
Sort-Object的默认行为,可省略-Ascending参数
Get-Content .\sorting.txt | Sort-Object { [int]$_ }
将排序结果写入文件
如果需要把排序后的内容保存下来,可通过管道输出到Set-Content:
- 覆盖原文件(注意:此操作会替换原文件内容,建议先备份)
Get-Content .\sorting.txt | Sort-Object { [int]$_ } -Descending | Set-Content .\sorting.txt
- 输出到新文件(更安全,避免误删原数据)
Get-Content .\sorting.txt | Sort-Object { [int]$_ } -Descending | Set-Content .\sorted_sorting.txt
处理浮点数
如果文件内的数字是小数(如3.14、10.5),只需把转换类型从[int]改成[double]即可:
Get-Content .\sorting.txt | Sort-Object { [double]$_ } -Descending
内容的提问来源于stack exchange,提问作者Rahmat azam
相关产品推荐
相关产品推荐

