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

如何去除PowerShell Get-FileHash输出文件的首尾空行?

解决PowerShell生成hash.txt首尾空行的问题

嘿,我来帮你搞定这个首尾空行的麻烦!问题出在你用了Format-List这个cmdlet——它是专门给控制台输出做格式化用的,自带了多余的空行和格式符,直接写入文件自然会带出这些空行。另外每次用Out-File -Append也可能叠加空行问题。

这里有两个核心改进方向,结合起来就能彻底解决:

  • 避免用Format-List生成文件内容:直接从Get-FileHash的结果里提取需要的属性,自己构造干净的文本行,完全控制输出格式。
  • 先收集所有内容再一次性写入:不要每次循环都追加写入文件,先把所有要输出的内容存到一个变量里,最后一次性写入,减少空行叠加的可能。

修改后的完整代码

# 初始化存储文本内容的变量
$hashTxtContent = @()
# 假设$lines是你已经定义好的文件路径集合
foreach($line in $lines) {
    # 计算MD5哈希并构造文本行
    $md5Hash = Get-FileHash $line -Algorithm MD5
    $hashTxtContent += "Path: $($md5Hash.Path)"
    $hashTxtContent += "Algorithm: $($md5Hash.Algorithm)"
    $hashTxtContent += "Hash: $($md5Hash.Hash)"
    $hashTxtContent += "" # 每个文件的哈希之间加空行分隔(可选,按需调整)

    # 计算SHA256哈希并构造文本行
    $sha256Hash = Get-FileHash $line -Algorithm SHA256
    $hashTxtContent += "Path: $($sha256Hash.Path)"
    $hashTxtContent += "Algorithm: $($sha256Hash.Algorithm)"
    $hashTxtContent += "Hash: $($sha256Hash.Hash)"
    $hashTxtContent += ""

    # 计算SHA512哈希并构造文本行
    $sha512Hash = Get-FileHash $line -Algorithm SHA512
    $hashTxtContent += "Path: $($sha512Hash.Path)"
    $hashTxtContent += "Algorithm: $($sha512Hash.Algorithm)"
    $hashTxtContent += "Hash: $($sha512Hash.Hash)"
    $hashTxtContent += ""

    # CSV部分优化:添加-NoTypeInformation避免开头出现类型信息行
    @('MD5','SHA256','SHA512') | ForEach-Object { Get-FileHash -Algorithm $_ $line } | Export-Csv hash.csv -Delimiter "," -Append -NoTypeInformation
}

# 最后一次性写入文本文件,过滤掉所有空行
$hashTxtContent | Where-Object { $_ -ne "" } | Out-File -Width 200 'hash.txt' -Encoding ASCII

关键修改说明

  1. 用$hashTxtContent数组统一收集所有要写入的内容,避免多次追加文件带来的空行叠加问题
  2. 直接提取Get-FileHash返回对象的属性构造字符串,彻底摆脱Format-List带来的格式冗余
  3. 写入文件前用Where-Object { $_ -ne "" }过滤所有空行,确保文件首尾没有多余空白
  4. CSV部分新增-NoTypeInformation参数,避免生成不必要的类型信息行(更规范的CSV输出)

这样生成的hash.txt就会是干净的内容,没有首尾空行啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 18:38:11