将格式十六进制 PowerShell 表转换为原始十六进制转储

问题描述 投票:0回答:2

我在 PowerShell 中使用

Format-Hex
命令来获取字符串的十六进制内容。我的命令
"some_string" | format-hex
给出了表格中的输出。我怎样才能把它变成一个原始的十六进制转储,这样它就像
736f6d655f737472696e67

powershell hex dump
2个回答
9
投票

展开结果对象的

Bytes
属性,将每个字节格式化为两位数的十六进制数字,然后连接它们:

("some_string" | Format-Hex | Select-Object -Expand Bytes | ForEach-Object { '{0:x2}' -f $_ }) -join ''

但是,编写自定义函数将字符串转换为十六进制表示形式可能会更简单、更直接:

function ConvertTo-Hex {
    [CmdletBinding()]
    Param(
        [Parameter(
            Position=0,
            Mandatory=$true,
            ValueFromPipeline=$true,
            ValueFromPipelineByPropertyName=$true
        )]
        [string]$InputObject
    )

    $hex = [char[]]$InputObject |
           ForEach-Object { '{0:x2}' -f [int]$_ }

    if ($hex -ne $null) {
        return (-join $hex)
    }
}

"some_string" | ConvertTo-Hex

0
投票

使用

Format-Hex

('Hello World' | Format-Hex).HexBytes
# 48 65 6C 6C 6F 20 57 6F 72 6C 64
© www.soinside.com 2019 - 2024. All rights reserved.