PowerShell 哈希表到 CSV

PowerShell hashtable to CSV

我正在使用散列图来获取一些文件名、md5 和路径详细信息 - 问题是我不认为我需要散列图,因为我并不是真的在寻找 key/value 对,而是包含名称、全名和 md5 列的 CSV - 实现此目的的最佳方法是 powershell?

这是我当前的代码,我想我可以使用它,但最终我不得不“替换”我最终 CSV 中不需要的所有 key= 内容。

$MD5Hashes = @{}
Get-ChildItem "C:\Users\Tony\Pictures\My Pictures09" -Recurse -File |  ForEach-Object {
  $MD5Hashes.Add($_.Name, (Get-FileHash -Path $_.FullName -Algorithm MD5 | Select-Object -Property * -ExcludeProperty Algorithm ))
}

难道没有一种简单的方法来获取 ChildItem 并且只需用逗号分隔并换行每个名称、全名和 md5 吗?

使用 Select-Object 创建一个具有您想要的所有属性的对象,如下所示:

Get-ChildItem "C:\Users\Tony\Pictures\My Pictures09" -Recurse -File | select-object name, fullname, @{Name = "MD5"; Expression = {(Get-FileHash $_.FullName -Algorithm MD5).Hash}}

然后您可以使用 Export-CSV 将对象导出到 csv 文件中:

Get-ChildItem "C:\Users\Tony\Pictures\My Pictures09" -Recurse -File | select-object name, fullname, @{Name = "MD5"; Expression = {(Get-FileHash $_.FullName -Algorithm MD5).Hash}} | export-csv FilesWithHashs.csv -NoTypeInformation