标题: [文本处理] 小型二进制文件ASCII编码器 [打印本页]
作者: qzwqzw 时间: 2011-5-18 10:13 标题: 小型二进制文件ASCII编码器
本帖最后由 qzwqzw 于 2011-5-24 19:45 编辑
- :: ASCodec.cmd - 小型二进制文件ASCII编码器
- :: 程序说明:
- :: 主要实现将小型二进制文件转换为ASCII字符代码,便于在纯文本环境中传输
- :: 本编码器不包含任何压缩算法,编码后的ASCII代码体积是原二进制文件的4/3
- :: 编码器decbin与解码器encbin原作者为Terry Newton,具体见参考链接中信息
- :: 在这里,二进制文件是广义上的文件,既可以是程序文件
- :: 也可以是文本文件、网页文件或者其它文件大小不超过40KB的任何文件
- :: 程序限制:
- :: 受decbin限制,目前仅能编码二进制文件的前40K字节部分,其它部分将被丢弃
- :: 版本历史:
- :: 2011-05-18 - qzwqzw
- :: 2011-05-24 - qzwqzw - 解决一些bug,改进用户界面,适应跨PC环境
- :: 参考链接:
- :: http://www.infionline.net/~wtnewton/batch/conv2bat.htm
- :: 使用方法:
- :: 将要编码的二进制文件拖到批处理程序中执行
- :: 即会在二进制文件所在目录生成一个同名的批处理文件
- :: 将该批处理文件移动到任何其他目录
- :: 双击执行将会生成原来的二进制文件
- @echo off & setlocal
- if [%1]==[:Error] goto %1
- if not [%1]==[] if exist "%~1" goto :Codec
- echo.请将要编码的文件拖到该窗口中,然后按回车后开始编码
- echo.请注意:该文件不能大于40K字节。
- echo.
- set/p file=文件名:
- %0 %file%
- :Codec - 生成ASCODE形式的解码器与编码器的ASCII代码,并据此生成编码器
- if %~z1 gtr 40960 %0 :Error 1 "文件 '%1' 的文件大小 '%~z1' 超过40KB"
- chcp 437>nul & graftabl 936>nul
- cls
- echo.
- echo 开始创建解码器与编码器...
- set dec=decbin.com
- set enc=encbin.com
- set tf=encbin.tmp
- :: CM3编码的ASCII转二进制解码器...
- ECHO:`h}aXP5y`P]4nP_XW(F4(F6(F=(FF)FH(FL(Fe(FR0FTs*}`A?+,>%dec%
- ECHO:fkOU):G*@Crv,*t$HU[rlf~#IubfRfXf(V#fj}fX4{PY$@fPfZsZ$:NvN$>>%dec%
- ECHO:9AyroNB-)dOKwK0rRkfTbi)ws_~[[q9wE'sqlu1sY*Bsfe=@ziNS1a)88e>>%dec%
- ECHO:f9RTL)9Z{3INBD?o6@MDLO{Zz4Q23E-'09NX9@Vz(42A7c8zMS:u$w6k5Q>>%dec%
- ECHO:N,h:le)~gF?tutTyxoe5UiIdtn';0rJ1q:{7;lAl']y:yTjZBbOo?QRIdN>>%dec%
- ECHO:$Bp@P/nAp_r0*4f'XcF4q3o?$_t5lx$Q-OxSfUNQ__Gd~$Q-Oxgkx=LGHU>>%dec%
- ECHO:S)$C6P8#>>%dec%
- :: 二进制转ASCII的编码器,以下ASCII代码即用自身编码而成
- ECHO:AALIxnCmeRf0\Uf0pWjXYBlxr0MyG02u022nc1Z5Z0r4G2ldMAj[8F34dd>%tf%
- ECHO:Z1Z0r4G2ld6Aj[8F34Ed3EmbG02lJpNl0jjjCt9v0407ZvjtS3I0j7rvLv>>%tf%
- ECHO:G203l0wUDv20F42eD3ZujTS6fmprbD2e4uwp39gwYdfDfAdng0f1f0ZF2t>>%tf%
- ECHO:04bemDCXj0C0LHtA2701ZsG0SFdfW]6630Jf36S6W1f0rJ2fMfQYW1YAoO>>%tf%
- ECHO:EAt0y[36S6W1[8LRi3}>>%tf%
- :: 使用解码器生成解码器
- %dec% < %tf% > %enc%
- if errorlevel 1 %0 :Error 2 创建编码器与解码器错误 "请检查文件%dec%、%tf%与%enc%"
- echo.
- echo 成功创建编码器 %enc% 与 解码器 %dec%
- :Generate - 生成自解码的批处理,运行后解码生成指定的二进制文件
- echo :: %~f1.bat - Created by ASCodec.cmd - %date% > "%~f1.bat"
- echo @echo off ^& setlocal >> "%~f1.bat"
- echo set dec=decbin.com>> "%~f1.bat"
- find ">%%dec%%" < "%~f0" >> "%~f1.bat"
- echo more +12 ^< "%%~f0" ^>%%tmp%%\%~sn1.tmp >> "%~f1.bat"
- echo %%dec%% ^< %%tmp%%\%~sn1.tmp ^> "%~nx1" >> "%~f1.bat"
- echo del %%dec%% ^& goto :eof >> "%~f1.bat"
- %enc% < %1 >> "%~f1.bat"
- echo.
- echo 成功创建自解码文件 "%~f1.bat"
- if not "%~dp0"=="%~dp1" start "" explorer.exe /select,"%~f1.bat"
- del %tf% %enc% %dec%
- if "%~0"=="%~f0" pause
- goto :eof
-
- :Error - 处理抛出的错误消息
- echo.
- echo %0 发生错误[%2]: %~3
- echo.
- if not [%4]==[] echo 提示:%~4
- if not "%~dp0"=="%~dp1" pause
- goto :eof
复制代码
作者: mxxcgzxxx 时间: 2011-5-18 13:12
先收藏了!慢慢享用
作者: ppmath 时间: 2011-5-24 08:16
怎么用啊。。。。????
作者: qzwqzw 时间: 2011-5-24 16:38
将要编码的二进制文件拖到批处理程序中执行
即会在二进制文件所在目录生成一个同名的批处理文件
将该批处理文件移动到任何其他目录
双击执行将会生成原来的二进制文件
在这里二进制文件是广义的
可以是程序文件、文本文件、网页文件、音乐文件或者视频文件
作者: ppmath 时间: 2011-5-24 17:41
4# qzwqzw
不能还原!
而且得到bat文件是原来文件体积的好多倍,
不好用。
作者: qzwqzw 时间: 2011-5-24 17:50
你再确认一下
代码经过了修改
作者: ppmath 时间: 2011-5-24 17:58
压缩文件格式未知或者数据已经被损坏。
作者: qzwqzw 时间: 2011-5-24 18:00
请确认文件大小不超过40K
作者: ppmath 时间: 2011-5-24 18:11
好了,谢谢楼主,批处理好厉害
作者: qzwqzw 时间: 2011-5-24 18:15
谢谢提醒
增加了错误检查与处理模块
作者: plp626 时间: 2011-5-24 21:26
收藏之。。。拿下。。。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |