我正在编写一个脚本,该脚本从二进制文件中读取,转换为 ASCII,提取/分隔 2 列,并将其输出到 txt。
我查看了这篇文章以实现二进制 > ASCII 步骤,但是,在我的脚本中实现它的方式,它似乎只在文件的第一行执行上述过程。
我将如何重写它以遍历文件中的所有行?
我的代码如下。
# run the command script to extract the file
script.cmd
# Read the entire file to an array of bytes.
$bytes = [System.IO.File]::ReadAllBytes("filePath")
# Decode first 'n' number of bytes to a text assuming ASCII encoding.
$text = [System.Text.Encoding]::ASCII.GetString($bytes, 0, 999999)|
# only keep columns 0-22; 148-149; separate with comma delimiter
%{ "$($_[$0..22] -join ''),$($_[147..147] -join '')"} |
# convert the file to .txt
set-content path\file.txt
此外,编写这部分的更优雅的方式是什么,它只读取字符串的长度,而不是拉入最多 999999 个字节?
$text = [System.Text.Encoding]::ASCII.GetString($bytes, 0, 999999)|