PowerShell 哈希表到 CSV

问题描述

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

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

$MD5Hashes = @{}
Get-ChildItem "C:\Users\Tony\Pictures\My Pictures\2009\03" -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 Pictures\2009\03" -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 Pictures\2009\03" -Recurse -File | select-object name,@{Name = "MD5"; Expression = {(Get-FileHash $_.FullName -Algorithm MD5).Hash}} | export-csv FilesWithHashs.csv -NoTypeInformation

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...