如何使用Out-File在同一行输出哈希值与文件路径
解决方法
修改你的PowerShell代码,将哈希值和路径拼接成单个字符串输出即可:
Get-FileHash -Algorithm MD5 -Path (Get-ChildItem $startfolder -exclude CHKSUMS.MD5) | ForEach-Object { "$($_.Hash) $($_.Path)" } | Out-File -FilePath $tempDir\PhysicalUSBHash.txt
说明
原来的代码中,ForEach-Object { $_.Hash,$_.Path }会分别输出哈希值和路径两个独立的对象,PowerShell默认会把每个对象单独写一行。改成用双引号包裹并拼接两个值后,就能让它们在同一行以空格分隔输出。
如果需要和预先计算的哈希文件编码保持一致,可以添加-Encoding参数指定编码(比如ASCII、UTF8等),示例:
Get-FileHash -Algorithm MD5 -Path (Get-ChildItem $startfolder -exclude CHKSUMS.MD5) | ForEach-Object { "$($_.Hash) $($_.Path)" } | Out-File -FilePath $tempDir\PhysicalUSBHash.txt -Encoding ASCII
内容的提问来源于stack exchange,提问作者Lando
相关产品推荐
相关产品推荐

