You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将MD5哈希结果与纯文件名合并输出至单一CSV/TXT文件?

合并PowerShell文件哈希与文件名输出到单一文件

我来帮你解决这个问题——其实不用分开生成两个文件再合并,我们可以用一条命令直接输出包含你需要的所有信息的结构化CSV,这样既高效又能避免文件顺序不匹配的问题:

最优解决方案:一步生成包含所有字段的CSV

这条命令会递归遍历文件,同时输出纯文件名、完整路径和MD5哈希值到同一个CSV文件:

Get-ChildItem -Recurse -File | 
    Select-Object Name, FullName, 
        @{Name='MD5Hash'; Expression={(Get-FileHash -Algorithm MD5 $_.FullName).Hash}} |
    Export-CSV -Path CombinedOutput.csv -NoTypeInformation

命令解释:

  • -Recurse -File:只递归获取所有文件(排除文件夹,避免无效的哈希计算)
  • Select-Object:提取我们需要的属性:
    • Name:不带路径的纯文件名(对应你第二个命令的输出)
    • FullName:文件的完整路径(对应你第一个命令的Path字段)
    • 计算属性MD5Hash:调用Get-FileHash生成当前文件的MD5哈希值
  • -NoTypeInformation:移除CSV文件开头的PowerShell类型信息,让文件更通用

如果你需要合并已生成的两个文件(不推荐)

如果你已经生成了MD5ofFolder.csv和filename.txt,可以用以下命令合并,但要注意两个文件的行数必须完全一致(否则会出现内容错位):

# 读取CSV文件内容
$hashData = Import-CSV MD5ofFolder.csv
# 读取文件名列表到数组
$names = Get-Content filename.txt

# 遍历合并数据
for ($i=0; $i -lt $hashData.Count; $i++) {
    $hashData[$i] | Add-Member -MemberType NoteProperty -Name 'FileName' -Value $names[$i]
}

# 导出合并后的CSV
$hashData | Export-CSV -Path MergedOutput.csv -NoTypeInformation

注意事项:

  • 这种方法依赖两个文件的行顺序完全对应,如果第一个命令跳过了文件夹(Get-FileHash无法处理文件夹),而第二个命令包含了文件夹名称,那么行数会不匹配,导致数据错位
  • 优先推荐前面的一步生成方案,从根源避免这类问题

内容的提问来源于stack exchange,提问作者user9524014

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:07:29