精灵小的 发表于 2010-9-12 11:00:52

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
    )
页: [1]
查看完整版本: chm文件反编译器

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