精灵小的 发表于 2011-2-9 13:15:31

chm文件反编译器

chm文件反编译器 V1.2
:: code by namejm 2007.12.27~2008.3.13 bbs.bathome.cn CMD@XP
::
:: 功能:
::   单个/批量反编译chm文件,并保持资源的原始结构。
:: 使用方式有两种:
::   ① 把单个或指定个数的文件直接拖放到本程序。
::   ② 直接双击运行。此时处理的是当前目录下所有以.chm为后缀的文件
:: 执行过程及处理效果:
::   因为 hh -decompile 语句不能使用引号,所以,先把原始资源释放到
:: 短文件名格式的文件夹中,释放完毕后再改名;
::   两种执行方式都有简单的容错处理;反编译后的资源放在单独的文件夹
:: 中,此文件夹位于当前目录,并以chm文件名命名。
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off
set TT=chm文件反编译器 1.2
echo.&echo.&echo     正在反编译CHM文件,请稍候...
cd /d "%~dp0"
:: 以拖动文件到批处理文件上的方式运行批处理时,%cd% 的值将会强制转换为
:: %homepath%,因此,上一条语句非常关键!
del /a /f 伪chm文件列表.txt 2>nul
if "%~1"=="" goto All
:Some
title %TT%-正在处理"%~nx1"
if /i not "%~x1"==".chm" (
cls
echo.&echo.&echo    "%~nx1"不是chm文件
echo.&set /p=    请按任意键继续...
cls
echo.&echo.&echo     正在反编译CHM文件,请稍候...
shift
if "%~2"=="" exit
goto Some
)
if not "%~1"=="" (
title %TT%-正在处理"%~nx1"
rd /q /s "%~n1" 2>nul
hh -decompile %~sn1 %~snx1
if not exist %~sn1 (
       echo "%~nx1">>伪chm文件列表.txt
) else (
       ren %~sn1 "%~n1" 2>nul
)
shift
if not "%~2"=="" goto Some
)
exit
:All
for /f "delims=" %%i in ('dir /a-d /b *.chm 2^>nul') do (
title %TT%-正在处理"%%~nxi"
rd /q /s "%%~ni" 2>nul
hh -decompile %%~sni %%~snxi
if not exist %%~sni (
       echo "%%~nxi">>伪chm文件列表.txt
) else (
       ren %%~sni "%%~ni" 2>nul

terrylpf 发表于 2011-2-11 12:42:11

真的不错的。
页: [1]
查看完整版本: chm文件反编译器

请大家牢记南瓜园网址 www.nan2008.com