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

PowerShell中Get-Content获取的字节码格式化及去空格问题

解决方案

首先,你的当前命令存在两个问题:一是Write-Host仅会将内容输出到控制台,无法将结果保存到变量或文件;二是-Raw参数在字节编码模式下会把整个文件读成单字节数组对象,导致管道遍历逻辑异常。调整后的命令可直接满足你的两项需求:

$bytes = Get-Content -Path "c:\picture.jpg" -Encoding Byte
$hexString = -join ($bytes | ForEach-Object { '{0:x}' -f $_ })
# 直接输出结果
$hexString
# 若需保存到文件,执行以下命令
# $hexString | Out-File -Path "c:\output.txt" -Encoding ASCII

关键说明:

  • 移除-Raw参数:Get-Content -Encoding Byte会返回文件的字节数组,每个元素对应单个字节值,方便逐个处理。
  • 用-join拼接字符串:替代Write-Host -NoNewline,直接将所有字节的十六进制结果拼接成无空格的长字符串,完美实现“移除字节间空格”的需求。
  • '{0:x}' -f $_:已经满足“每个字节格式化为两位数字(省略前导零)”的要求——字节值0-15会输出单个十六进制字符(如10输出a),16-255输出两个字符(如255输出ff)。
  • trim()在这里完全没必要,因为每个字节的十六进制结果本身无多余空格,拼接后的字符串自然也不会包含空格。

如果想直接在控制台输出结果,可简化为一行命令:

-join (Get-Content -Path "c:\picture.jpg" -Encoding Byte | ForEach-Object { '{0:x}' -f $_ })

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 10:10:08