PowerShell命令求助:获取指定文件哈希及属性信息
PowerShell 文件搜索与哈希计算解决方案
下面是满足你需求的完整PowerShell命令,同时解决哈希值为空的问题:
# 替换为你的目标目录和要搜索的文件名/通配符 $targetDir = "C:\你的目标目录" $fileFilter = "*.exe" # 比如搜所有exe文件,可改成具体文件名 Get-ChildItem -Path $targetDir -Filter $fileFilter -Recurse -File -ErrorAction SilentlyContinue | ForEach-Object { # 计算文件哈希,默认用SHA256,可加-Algorithm参数指定MD5/SHA1等 $hashResult = Get-FileHash -Path $_.FullName -ErrorAction SilentlyContinue # 构造输出对象,包含所有需要的属性 [PSCustomObject]@{ FullName = $_.FullName Attributes = $_.Attributes LastWriteTime = $_.LastWriteTime CreationTime = $_.CreationTime LastAccessTime = $_.LastAccessTime HashValue = $hashResult ? $hashResult.Hash : "无法计算(权限或文件问题)" } }
关键说明:
- 递归搜索文件:通过
-Recurse参数实现目录递归,-File确保只返回文件(排除目录),-Filter指定要搜索的文件规则 - 哈希值处理:用
ForEach-Object逐个处理文件,单独调用Get-FileHash并保存结果,避免之前可能出现的空值问题;同时判断哈希结果是否存在,给出友好提示 - 权限错误处理:在
Get-ChildItem和Get-FileHash中分别添加-ErrorAction SilentlyContinue,比全局设置$ErrorActionPreference更安全,不会影响后续其他命令的错误提示 - 扩展用法:如果需要把结果导出到CSV文件,只需在命令末尾追加:
| Export-Csv -Path "C:\导出路径\文件哈希列表.csv" -NoTypeInformation
内容的提问来源于stack exchange,提问作者trblshootr
相关产品推荐
相关产品推荐

