使用Powershell读取/解析二进制文件

时间:2012-05-20 08:54:38

标签: parsing powershell binary

我正在尝试解析二进制文件,我需要一些帮助。我在网上寻找“解析二进制文件”,“阅读二进制文件”,“阅读二进制文本”等等,我没有运气。

例如,我如何从这个二进制文件中读取此文本?任何帮助将非常感激。我正在使用powershell。

enter image description here

3 个答案:

答案 0 :(得分:30)

您似乎有一个二进制文件,其文本位于固定位置或其他可退出位置。 Get-Content可能会帮助你,但是......它会尝试将整个文件解析为字符串数组,从而创建一个“垃圾”数组。此外,你不会知道特定的“人物绳索”在文件位置是什么。

您可以尝试.NET类File来阅读和Encoding进行解码。这只是每次通话的一条线:

# Read the entire file to an array of bytes.
$bytes = [System.IO.File]::ReadAllBytes("path_to_the_file")
# Decode first 12 bytes to a text assuming ASCII encoding.
$text = [System.Text.Encoding]::ASCII.GetString($bytes, 0, 12)

在您的实际情况中,您可能会在循环中查找字节数组,查找特定字符串序列的开头和结尾,并使用这些索引指定要从{提取文本的字节范围。 {3}}

我提到的.NET方法在.NET Framework 2.0或更高版本中可用。如果您安装了PowerShell 2.0,那么您已经拥有它。

答案 1 :(得分:6)

如果您只是寻找字符串,请查看SysInternals的strings.exe实用程序。

答案 2 :(得分:3)

您可以通过Get-Content -Encoding字节读取文件。我不知道如何解析它。