如何在PowerShell中对Get-ChildItem结果经Get-FileHash处理后排序再输出?
给PowerShell哈希报告添加排序功能
你的脚本已经能成功遍历文件并生成哈希值了,要实现排序只需要在Get-FileHash之后、Out-File之前加入Sort-Object命令就行,下面是两种实用的排序方案:
按文件路径排序(最常用)
这种方式会让报告里的文件按目录结构的字母顺序排列,方便你按路径快速定位文件:
Get-ChildItem -Path "c:\temp\path" -Recurse -Force -Attributes !Directory | ForEach-Object { Get-FileHash $_.FullName } | Sort-Object -Property Path | Out-File "c:\temp\report_file.txt"
按哈希值排序
如果需要快速查找重复哈希的文件(比如排查重复文件),可以按哈希值的字母顺序排序:
Get-ChildItem -Path "c:\temp\path" -Recurse -Force -Attributes !Directory | ForEach-Object { Get-FileHash $_.FullName } | Sort-Object -Property Hash | Out-File "c:\temp\report_file.txt"
小技巧
要是需要反向排序(比如从Z到A或者从大哈希值到小),只需要给Sort-Object加上-Descending参数就行,比如:Sort-Object -Property Path -Descending。
排序后的报告内容会整齐地按你指定的规则排列,再也不会出现原示例里路径截断后顺序混乱的情况啦~
内容的提问来源于stack exchange,提问作者Betto69
相关产品推荐
相关产品推荐

