返回列表 发帖
所需阅读权限 1

[特效代码] [原创]用纯bat生成exe文件的方法

本帖最后由 plp626 于 2011-12-22 05:34 编辑

本贴仅供技术娱乐,切勿当真。。。
有技术爱好者,可交流此贴
http://bbs.bathome.net/thread-12265-1-1.html
@echo off&setlocal EnableDelayedExpansion
:: 不依赖debug,不依赖vbs ,bat基本独立自主的的生产方法
pushd %tmp%||(pause&exit/b)
call:getasc $ $1
call:getdb s1
>nul copy/b $1+$1 $2
>nul copy/b $2+$1 $3
>nul copy/b $3+$3+$1 $7
if exist $~.tmp del $~.tmp
Set s=
for /l %%a in (0 2 1112)do (
    if "!s1:~%%a,1!" neq "\" (
        for %%b in (!s1:~%%a^,2!)do Set s=!s!!$:~0x%%b,1!
    ) else (
        set/p=!s!<nul>>$~.tmp
        set/an=%%a+1&for %%b in (!n!)do (
            copy/b $~.tmp+$!s1:~%%~b,1! $~.tmp >nul
        )
        set "s="
    )
)
popd&chcp 936>nul
move %tmp%\$~.tmp testfile.rar
start testfile.rar
pause
goto:eof
:getdb
set %1=526172211A07\13BD07308\10D\7E9737480902C\1F101\306\202A3ABBEC6E24AB^
13E1D3507\120\3706C702E657865\1B0E070720819150D0CFD1C0DF577318E473B9BA1D90^
2798460EA431D1D72A1F50C1C2209253020A6BEED69205F8896F37DC1289092964203A65F0^
2592B84A1109440929744FE05D4E960C63A3A8743A187316A4BB937CDEA4B9FE20D90192B9^
82F2CDF62DF61EF1BABF9DF1B947C619B861F7D99EA3C6D1A6DFBE2F3EB0A88AE98478B970^
C3E2871211BC3D70B4FC1F7A62FB773F992FA1A178F2ACBBC0E3ADAAE8D90AC369A6CA1A24^
076C340BDDB3BC7E4065BAE446952EEF870324EAC6682143A8E6C8B1A8E2A187D44D2C73FA^
8E04D2CFAE84F78217418B3275E2944D71E6F23D73945523B6CB17FBC2C773BE6EA894964A^
676F9ADEA18223D9DBDE946B8CA334430672874F2FF3F14FC8BB60F36AED7B37629ACFDF7A^
F909EDFCCCFB7F784FE2CD2FC4D931EBFEBB1AD906C38D5ABBB134449C6A11A435C47E5BEC^
4293B5F8719139B75390EF1E37E0E0E2DCF35C8F79D388848485F45CBA4277AFAD6E4D6E04^
676E3D8EE652C094BDB594C6037202C1660F51AF620DFF02CB82B62D3D9212266D03436481^
2FF89872A66D401B55E4B7964349D6EF1A9744744655A44445A2166ADEE0E869F209FBE75A^
3E875FEA78FC41AF06C41B81FDFE6CBDA759D2A35D860F23960AF1C95BFDD6586E9F4A959B^
68BC8D31A4E4B228F71428371C50B69C24C81F6D91AFCAA3AACB412CAE517FFC0DC70A0C43^
D7B\14007\1&goto:eof
:getasc <$|#|@|_|\|/|?|{|}|[|]>
chcp 936>nul
set %1gbk=币市布弄清分标圈唉上下同名后小成民怒易笔耕化吗战则刚猛夜思舞鸟简闹出读导能图绿
chcp 437>nul
Set %1=&cmd /u/c echo !%1gbk!>%1gbk.tmp&set/p %1gbk=<%1gbk.tmp
for /l %%a in (0,2,76)do Set %1=!%1!!%1gbk:~%%a,1!
set %1= !%1:~,31! ^^!"#$%%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^^_`abcdefghijklmnopqrstuvwxyz{|}~!%1:~-8,1!亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬!%1:~-7!
cmd /u/cecho.>%1gbk.tmp&findstr/vrc:$ %1gbk.tmp>%2COPY
getasc函数详解见:http://bbs.bathome.net/thread-12347-1-1.html
1

评分人数

8# qzwqzw


我正弄一个any2bat的 纯bat版,为了得到的数据体积小,又“解压”快速,想给大家弄一个短小而方便的函数,但越深入觉得水越深,设计到编码如何最佳体积存储。。感觉吃力。

这个文件体积较小,我先是用debug d100 size+256 将它的16进制文本信息提取,然后对连续00字符做重复标记处理

\对后面的一位做转义处理,/对后面的二位做转义处理,比如扫描到\A1C。。。就表示\A这里有0xa个0x00字符,扫描到/3C89。。表示/3C这里有0x3C个0x00字符。。。。
这是较简单压缩重复字符的方法

如果高压缩,那解压代码也就长了,这个压缩包文件体积小,简单处理了。

TOP

返回列表