Powershell Format-Hex 如何截断右侧的解码文本列
Powershell Format-Hex how to truncate decoded text column on right
您好,我正在尝试使用 power shell 命令 Format-Hex,它运行良好。
在普通的十六进制编辑器中,可以选择隐藏而不包括右侧的解码文本字符。
我不知道如何使用 Format-Hex in power shell 来只显示 :
00000030 1A 00 00 00 00 00 00 00 68 74 74 70 3A 2F 2F 66
是否有参数可以使用 PS C:\Users\YourName\Desktop>Format-Hex file.dll 而不是下面的参数?我只是确认是否存在任何此类参数或 cli 工具允许在使用 Format-Hex 命令时不寻找截断或文件解析解决方案。
00000030 1A 00 00 00 00 00 00 00 68 74 74 70 3A 2F 2F 66 ........http://f
00000040 72 61 6E 6B 69 65 2E 70 68 6F 74 6F 00 00 FF ED rankie.photo...í
00000050 00 C2 50 68 6F 74 6F 73 68 6F 70 20 33 2E 30 00 .APhotoshop 3.0.
00000060 38 42 49 4D 04 04 00 00 00 00 00 A6 1C 02 28 00 8BIM.......▌..(.
00000070 62 46 42 4D 44 30 31 30 30 30 61 66 63 30 64 30 bFBMD01000afc0d0
我阅读了有关 Format-Hex 的帮助
Format-Hex
有 no 参数,会从输出中省略最后一列。
如果您在 macOS 上 运行 或 Linux,则可以使用那里提供的标准实用程序,例如 hexdump
.
但是,以性能为代价,您可以围绕 Format-Hex
编写一个简单的包装函数:
function Format-HexBare {
Format-Hex @args |
Out-String -Stream |
ForEach-Object `
-Begin { $maxLen = if ($IsCoreCLR) { 64 } else { 58 } } `
-Process {
$line = $_
try { $line.Substring(0, $maxLen) } catch { $line }
}
}
注意:- PowerShell edition-specific - 最大值。上面除最后一列外的行长度为 hard-coded,原因如下:
稳健的正则表达式解决方案将具有挑战性。
.Substring()
解决方案还消除了不需要的列的header(仅在PowerShell(Core)7中显示+).
虽然不能保证输出格式不会随时间改变,[1]在这种情况下不太可能。尽管如此,该函数还是很容易适应的。
[1] for-display 格式的细节 - 仅供 人类观察者使用 - 不属于 PowerShell 关于向后兼容性的 public 合同的一部分。
您好,我正在尝试使用 power shell 命令 Format-Hex,它运行良好。 在普通的十六进制编辑器中,可以选择隐藏而不包括右侧的解码文本字符。
我不知道如何使用 Format-Hex in power shell 来只显示 :
00000030 1A 00 00 00 00 00 00 00 68 74 74 70 3A 2F 2F 66
是否有参数可以使用 PS C:\Users\YourName\Desktop>Format-Hex file.dll 而不是下面的参数?我只是确认是否存在任何此类参数或 cli 工具允许在使用 Format-Hex 命令时不寻找截断或文件解析解决方案。
00000030 1A 00 00 00 00 00 00 00 68 74 74 70 3A 2F 2F 66 ........http://f
00000040 72 61 6E 6B 69 65 2E 70 68 6F 74 6F 00 00 FF ED rankie.photo...í
00000050 00 C2 50 68 6F 74 6F 73 68 6F 70 20 33 2E 30 00 .APhotoshop 3.0.
00000060 38 42 49 4D 04 04 00 00 00 00 00 A6 1C 02 28 00 8BIM.......▌..(.
00000070 62 46 42 4D 44 30 31 30 30 30 61 66 63 30 64 30 bFBMD01000afc0d0
我阅读了有关 Format-Hex 的帮助
Format-Hex
有 no 参数,会从输出中省略最后一列。
如果您在 macOS 上 运行 或 Linux,则可以使用那里提供的标准实用程序,例如 hexdump
.
但是,以性能为代价,您可以围绕 Format-Hex
编写一个简单的包装函数:
function Format-HexBare {
Format-Hex @args |
Out-String -Stream |
ForEach-Object `
-Begin { $maxLen = if ($IsCoreCLR) { 64 } else { 58 } } `
-Process {
$line = $_
try { $line.Substring(0, $maxLen) } catch { $line }
}
}
注意:- PowerShell edition-specific - 最大值。上面除最后一列外的行长度为 hard-coded,原因如下:
稳健的正则表达式解决方案将具有挑战性。
.Substring()
解决方案还消除了不需要的列的header(仅在PowerShell(Core)7中显示+).
虽然不能保证输出格式不会随时间改变,[1]在这种情况下不太可能。尽管如此,该函数还是很容易适应的。
[1] for-display 格式的细节 - 仅供 人类观察者使用 - 不属于 PowerShell 关于向后兼容性的 public 合同的一部分。