佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > 批處理版chm文件反編譯器 v1.3

批處理版chm文件反編譯器 v1.3

熱門(mén)標(biāo)簽:美圖手機(jī) 銀行業(yè)務(wù) 網(wǎng)站文章發(fā)布 鐵路電話系統(tǒng) 檢查注冊(cè)表項(xiàng) 服務(wù)器配置 智能手機(jī) 呼叫中心市場(chǎng)需求

作者不光用后綴名的方式進(jìn)行了判斷,還在處理完成后判斷是不是偽chm文件列表,這點(diǎn)做的不錯(cuò),除了這個(gè)以外,還有一點(diǎn)收獲,在cmd中輸入hh.exe 磁盤(pán)名稱(chēng),看看有什么效果,不錯(cuò),打開(kāi)了相應(yīng)的盤(pán)符,以前都是用start 磁盤(pán)盤(pán)符打開(kāi)的,又學(xué)了一手。

你手頭是否有幾本chm格式的電子書(shū)?你是否有過(guò)滿(mǎn)世界搜索反編譯chm軟件的痛苦經(jīng)歷?你是否抱怨過(guò)這些軟件有這樣或那樣的限制?然而,你是否意識(shí)到,就在你的系統(tǒng)里,微軟已經(jīng)為你準(zhǔn)備好了小巧而強(qiáng)悍的反編譯程序?

  沒(méi)錯(cuò),微軟已經(jīng)為各位準(zhǔn)備好了這樣的軟件,它就是各位雙擊chm文件時(shí)系統(tǒng)默認(rèn)調(diào)用的hh.exe!我沒(méi)有開(kāi)玩笑,hh.exe這個(gè)毫不起眼的家伙,除了是個(gè)默默無(wú)聞的chm文件閱覽器之外,還是個(gè)現(xiàn)成的chm文件反編譯器!只是這個(gè)反編譯器的調(diào)用參數(shù)一直未見(jiàn)微軟公布,網(wǎng)上偶爾見(jiàn)到只言片語(yǔ),也未引起大家的足夠重視,因此它一直是大隱隱于市。

  不過(guò),hh.exe要成為我們手里的反編譯利器,光靠一條簡(jiǎn)陋的命令是不夠的,它還需要各位的反復(fù)測(cè)試、耐心打磨。現(xiàn)奉上本人草就的代碼,只做了一些主要的功能,尚未做界面的美化,請(qǐng)各位測(cè)試。

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: chm文件反編譯器 V1.3
:: code by namejm 2007.12.27~2010.4.9 bbs.bathome.net CMD@XP
::
:: 功能:
::   單個(gè)/批量反編譯chm文件,并保持資源的原始結(jié)構(gòu)。
:: 使用方式有兩種:
::   ① 把單個(gè)或多個(gè)文件直接拖放到本程序。
::   ② 直接雙擊運(yùn)行。此時(shí)處理的是當(dāng)前目錄下所有以.chm為后綴的文件
:: 執(zhí)行過(guò)程及處理效果:
::   因?yàn)?hh -decompile 語(yǔ)句不能使用引號(hào),所以,先把原始資源釋放到
:: 短文件名格式的文件夾中,釋放完畢后再改名;
::   兩種執(zhí)行方式都有簡(jiǎn)單的容錯(cuò)處理;反編譯后的資源放在單獨(dú)的文件夾
:: 中,此文件夾位于當(dāng)前目錄,并以chm文件名命名。
::  無(wú)法識(shí)別不以.chm為后綴名的chm文件,但是可以識(shí)別以.chm為后綴名
::的其他文件(貌似有點(diǎn)拗口^_^)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off
set TT=chm文件反編譯器 1.3
echo.echo.echo     正在反編譯CHM文件,請(qǐng)稍候...
cd /d "%~dp0"
:: 以拖動(dòng)文件到批處理文件上的方式運(yùn)行批處理時(shí),%cd% 的值將會(huì)強(qiáng)制轉(zhuǎn)換為
:: %homepath%,因此,上一條語(yǔ)句非常關(guān)鍵!
set "destination=chm文件反編譯結(jié)果"
for /f "delims=" %%i in ("%destination%") do set "destination_short=%%~sfi"
md "%destination%" 2>nul
del /a /f "%destination%\偽chm文件列表.txt" 2>nul
if "%~1"=="" goto All

:Some
set str=%*
set "str=%str:"=%"
set "str= %str%"
call set "str=%%str: %~d1=" "%~d1%%"
for %%i in ("%str%") do (
  if not %%i=="" (
    title %TT%-正在處理"%%~nxi"
    if /i not "%%~xi"==".chm" (
      echo.echo     "%%~nxi"不是chm文件
      echo.echo     請(qǐng)按任意鍵繼續(xù)...
      pause>nul
      cls
      echo.echo.echo     正在反編譯CHM文件,請(qǐng)稍候...
    ) else (
      rd /q /s "%%~ni" 2>nul
      hh -decompile %destination_short%\%%~sni %%~sfi
      if not exist "%destination%\%%~sni" (
        echo "%%~nxi">>"%destination%\偽chm文件列表.txt"
      ) else (
        ren "%destination%\%%~sni" "%%~ni" 2>nul
      )
    )
  )
)
exit

:All
for /f "delims=" %%i in ('dir /a-d /b *.chm 2^>nul') do (
  title %TT%-正在處理"%%~nxi"
  rd /q /s "%destination%\%%~ni" 2>nul
  hh -decompile %destination_short%\%%~sni %%~sfi
  if not exist "%destination%\%%~sni" (
    echo "%%~nxi">>"%destination%\偽chm文件列表.txt"
  ) else (
    ren "%destination%\%%~sni" "%%~ni" 2>nul
  ) 
)

更新歷史:

2010.4.9
  把反編譯后的資源統(tǒng)一存放在指定的目錄下,不再與cmd文件位于同一
目錄下;
  修改了幾處錯(cuò)誤:
  1、當(dāng)把文件拖曳到cmd窗口時(shí),能兼容絕大多數(shù)特殊情況,比如等號(hào)、
分號(hào)、;唯有兩種情況無(wú)法處理:當(dāng)路徑中帶而沒(méi)有任何空格時(shí);當(dāng)路徑
中存在^符號(hào)時(shí);但是,雙擊運(yùn)行時(shí)不受任何特殊字符的影響;
  2、當(dāng)拖曳過(guò)來(lái)的文件與cmd文件不在同一目錄下時(shí)也能正確處理;
  此為1.3版;
2008.3.13
  生成的文件夾與CHM文件名保持一致,無(wú)須對(duì)特殊字符再做任何替換;
感謝 隨風(fēng) 的提醒;此為1.2版;
2008.1.27
  增添了反編譯多個(gè)指定CHM文件的功能;修正了不兼容文件名中帶^的
錯(cuò)誤;修改了部分提示信息;此為1.1版;
2008.1.8
  不再把文件名中的強(qiáng)制改為&,但是,文件名中的空格仍然沒(méi)法不去掉
2007.12.27
  初始版本1.0發(fā)布

反編譯是為了提取其中有用的資源,或是修改其中的錯(cuò)誤而重新制作成chm文件。

反編譯后的效果我在代碼里已經(jīng)說(shuō)明了:?jiǎn)蝹€(gè)/批量反編譯chm文件,并保持資源的原始結(jié)構(gòu)。

到此這篇關(guān)于批處理版chm文件反編譯器 v1.3的文章就介紹到這了,更多相關(guān)chm文件反編譯器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

標(biāo)簽:新疆 紅河 滄州 河南 樂(lè)山 沈陽(yáng) 長(zhǎng)治 上海

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《批處理版chm文件反編譯器 v1.3》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢(xún)

    • 400-1100-266
    淮阳县| 阿合奇县| 麻城市| 门头沟区| 花莲市| 贺州市| 辉县市| 安多县| 阳朔县| 盖州市| 施甸县| 柏乡县| 加查县| 北辰区| 镇安县| 斗六市| 泰州市| 马山县| 防城港市| 张掖市| 都兰县| 镇原县| 莫力| 平原县| 深圳市| 霍州市| 巴林右旗| 乐昌市| 固镇县| 塔城市| 西畴县| 四川省| 丽水市| 黔西县| 莒南县| 措勤县| 南宫市| 宁夏| 晋江市| 理塘县| 道孚县|