编写bat脚本调用hexview将S19文件进行无效字节FF填充
时间: 2023-07-15 14:15:52 浏览: 138
下面是一个简单的批处理脚本,它将使用hexview工具将指定的S19文件进行无效字节FF填充:
```
@echo off
set file=%1
set hexview="C:\path\to\hexview.exe"
if not exist %file% (
echo Error: File not found!
exit /b 1
)
%hexview% -c FF %file%
echo Done!
```
要使用此脚本,请将其保存为.bat文件(例如,fill_s19_with_FF.bat),然后从命令行窗口中运行以下命令:
```
fill_s19_with_FF.bat <path_to_s19_file>
```
请注意,此脚本假定您已经安装了hexview工具,并且将其添加到了系统路径中。如果您没有安装hexview,或者它不在您的系统路径中,您需要更新脚本中的hexview变量以指向hexview可执行文件的路径。
相关问题
编写bat脚本调用hexview将S19文件进行FF填充
以下是一个简单的批处理脚本,可以使用HexView工具将S19文件进行FF填充:
```
@echo off
setlocal enabledelayedexpansion
set HEXVIEW_PATH="C:\Program Files\HexView\hexview.exe"
set INPUT_FILE="C:\path\to\input.s19"
set OUTPUT_FILE="C:\path\to\output.s19"
set FILL_BYTE=FF
if not exist %INPUT_FILE% (
echo Input file not found!
exit /b 1
)
if exist %OUTPUT_FILE% (
del %OUTPUT_FILE%
)
for /f "tokens=1-3" %%a in (%INPUT_FILE%) do (
if "%%a"=="S1" (
set HEX_DATA=%%c
set HEX_DATA=!HEX_DATA:~0,-2!
set HEX_DATA=!HEX_DATA: =!
set HEX_DATA=!HEX_DATA:..=!
set HEX_DATA=!HEX_DATA: =!
set HEX_DATA=!HEX_DATA:~2!
set BYTE_COUNT=%%b
set LINE_DATA=%%a%%b%%c
set FF_COUNT=0
for /l %%i in (0,2,254) do (
set HEX_BYTE=!HEX_DATA:~%%i,2!
if "!HEX_BYTE!"=="!FILL_BYTE!" (
set /a FF_COUNT+=1
) else (
set FF_COUNT=0
)
if !FF_COUNT! geq 16 (
set LINE_DATA=!LINE_DATA!FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
set FF_COUNT=0
)
)
set LINE_DATA=!LINE_DATA:~0,2!!LINE_DATA:~2!
set NEW_LINE=!LINE_DATA:~0,8!
set /a BYTE_SUM=!BYTE_COUNT!+!NEW_LINE!
set BYTE_SUM=!BYTE_SUM:~-2!
set NEW_LINE=S1!BYTE_SUM!!NEW_LINE!!LINE_DATA:~8!
echo !NEW_LINE!>>%OUTPUT_FILE%
) else (
echo %%a%%b%%c>>%OUTPUT_FILE%
)
)
echo Done.
```
说明:
1. 将HexView工具的路径、输入文件、输出文件和要填充的字节设置成变量,方便修改。
2. 检查输入文件是否存在,如果不存在则退出。
3. 如果输出文件已经存在,则删除它,以避免出现重复数据。
4. 使用“for”循环逐行读取输入文件中的数据,并将每行数据分解为三个部分:记录类型、字节数和数据。
5. 如果记录类型为“S1”,则提取数据部分中的十六进制数据并将其转换为连续的字节。然后,对于每个字节,检查它是否与要填充的字节相同。如果是,则增加一个计数器。如果计数器达到了16,则在输出数据中添加16个FF字节。如果字节与要填充的字节不同,则将计数器重置为0。最后,将填充后的数据重新编码为S19格式,并写入输出文件。
6. 如果记录类型不是“S1”,则将整行数据直接写入输出文件。
7. 处理完所有记录后,脚本将显示“Done.”消息。
bat脚本调用hexview对S19文件进行填充FF
可以使用以下的 bat 脚本来调用 HexView 对 S19 文件进行填充 FF 操作:
```
@echo off
set HEXVIEW_EXE_PATH="C:\Program Files\HexView\HexView.exe"
set S19_FILE_PATH="C:\path\to\your\s19\file.s19"
rem Convert S19 file to binary
set BIN_FILE_PATH=%S19_FILE_PATH:.s19=.bin%
srec_cat %S19_FILE_PATH% -binary -o %BIN_FILE_PATH%
rem Fill binary file with FF
set FF_FILE_PATH=%BIN_FILE_PATH:.bin=_ff.bin%
copy /y %BIN_FILE_PATH% %FF_FILE_PATH%
certutil -fill FF %FF_FILE_PATH%
rem Convert binary file back to S19
set FF_S19_FILE_PATH=%S19_FILE_PATH:.s19=_ff.s19%
srec_cat %FF_FILE_PATH% -binary -o %FF_S19_FILE_PATH% -srec-out-charset ASCII
rem Open modified S19 file in HexView
start "" %HEXVIEW_EXE_PATH% %FF_S19_FILE_PATH%
```
这个脚本将会:
1. 设置 HexView 的可执行文件路径和 S19 文件路径;
2. 把 S19 文件转换成二进制文件,并把转换后的二进制文件填充 FF;
3. 把填充 FF 后的二进制文件转换回 S19 文件;
4. 打开修改后的 S19 文件。
需要注意的是,这个脚本需要使用到 srec_cat 和 certutil 工具,这两个工具需要在系统环境变量 Path 中配置。另外,HexView 的路径需要根据实际情况进行修改。
阅读全文