Ответ 1
Кажется, что у вас есть двоичный файл с текстом в фиксированной или иначе выводимой позиции. 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)
В вашем реальном случае вы, вероятно, пройдете массив байтов в цикле, который найдет начало и конец определенной последовательности строк, и используя эти индексы, чтобы указать диапазон байтов, который вы хотите извлечь из текста, с помощью GetString
.
Методы .NET, о которых я упоминал, доступны в .NET Framework 2.0 или выше. Если вы установили PowerShell 2.0, у вас уже есть его.