如何修改PowerShell的Select-Object输出,生成带相对路径的MD5哈希文件
获取文件MD5哈希并输出相对路径(模仿md5sum格式)
直接使用计算属性将Path字段替换为相对于目标目录的相对路径,单行代码如下:
Get-ChildItem -Path "E:\Test 1" -Recurse -File | Get-FileHash -Algorithm MD5 | Select-Object Hash, @{Name='Path'; Expression={$_.Path | Split-Path -NoQualifier | ForEach-Object { $_ -replace "^\\", "" }}} | Format-Table -HideTableHeaders | Out-File -Encoding ASCII -FilePath "file.md5"
关键修改说明:
- 在
Select-Object中,用@{Name='Path'; Expression={...}}定义计算属性,替代原有的Path字段 - 通过
Split-Path -NoQualifier去除路径的盘符部分,再用-replace "^\\", ""去掉开头的反斜杠,得到与E:\Test 1相对的路径格式 - 最终输出完全匹配
md5sum的格式:哈希值 + 空格 + 相对路径
如果需要带当前目录.前缀的相对路径(更贴近Linuxfind命令输出风格),可调整表达式:
Get-ChildItem -Path "E:\Test 1" -Recurse -File | Get-FileHash -Algorithm MD5 | Select-Object Hash, @{Name='Path'; Expression={".\" + ($_.Path | Split-Path -NoQualifier | ForEach-Object { $_ -replace "^\\", "" })}} | Format-Table -HideTableHeaders | Out-File -Encoding ASCII -FilePath "file.md5"
内容的提问来源于stack exchange,提问作者HTWingNut
相关产品推荐
相关产品推荐

