在单个输出中结合 MD5 分析和文件名

Combining MD5 Analysis with Filename in single Output

我正在努力将两个命令的输出合并到一个 CSV/TXT 文件中。

第一个命令是递归搜索文件夹并为每个文档创建一个MD5 号码。然后将其导出到包含完整路径的 CSV 文件。

dir -recurse | Get-FileHash -Algorithm MD5 | Export-CSV MD5ofFolder.csv

第二个命令是检索文件夹(和子文件夹)中的所有文件名,不包括任何路径:

get-childitem -recurse|foreach {$_.name} > filename.txt

在理想情况下,我将能够导出包含 MD5 值、完整路径和文件名(带扩展名)的单个 CSV 或 TXT 文档。

我注意到我的第二个代码字符串也在输出中生成了文件夹名称,这是不可取的。我可以生成不带文件夹名称的文本输出,但代码很丑陋,而且它不符合我的要求:

dir -recurse | Get-FileHash -Algorithm MD5 | dir -recurse | foreach {$_.name} > filename.txt

我确信这对于比我聪明的人来说是一个简单的问题,因此我们将不胜感激 - 我是 PowerShell 的新手。

使用 Select-Object 和计算的 属性 将名称添加到 Get-FileHash 的输出中:

dir -recurse |Get-FileHash -Algorithm MD5 |Select-Object Hash,Path,@{Name='Name';Expression={[System.IO.Path]::GetFileName($_.Path)}} |Export-Csv filename.csv

现在您可以在一个 csv 中拥有所有内容