Windows里有这样一个工具:hh.exe。
hh.exe最重要的功能就是用来关联CHM文件,当你运行一个chm文件的时候,系统就是用这个工具来打开的。

其实它还有另外一个功能——解压CHM文件
在CMD中运行以下命令:
hh.exe -decompile <解压目录> <CHM文件路径>

例如我想把JDKAPI16.CHM解压到当前目录的javadoc子目录中,可以这样:
hh.exe -decompile phpdoc php7.chm

解压后两个文件:

index.hhk     关键字定义文件对应chm的索引查找项

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
</HEAD><BODY>
<OBJECT TYPE="text/site properties">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Keyword" value="t1">
<param name="Name" value="Topic 1">
<param name="Local" value="page_1.html">
</OBJECT></LI>
<LI> <OBJECT type="text/sitemap">
<param name="Keyword" value="t2">
<param name="Name" value="Topic 2">
<param name="Local" value="page_2.html">
</OBJECT></LI>
<LI> <OBJECT type="text/sitemap">
<param name="Keyword" value="t3">
<param name="Name" value="Topic 3">
<param name="Local" value="page_3.html">
</OBJECT></LI>
</UL></BODY></HTML>

content.hhc    目录项   列出chm目录显示的标题以及真实文件地址

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="CHM Editor">
</HEAD><BODY>
<OBJECT type="text/site properties">
<param name="Window Styles" value="0x800027">
<param name="ImageType" value="Folder">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Chapter I">
<param name="ImageNumber" value="1">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Topic 1">
<param name="Local" value="page_1.html">
<param name="ImageNumber" value="11">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Topic 2">
<param name="Local" value="page_2.html">
<param name="ImageNumber" value="11">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Topic 3">
<param name="Local" value="page_3.html">
<param name="ImageNumber" value="11">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="新主题">
<param name="Local" value="page_4.html">
<param name="ImageNumber" value="11">
</OBJECT>
</UL>
</UL>
</UL>
</BODY></HTML>

用windows命令解压chm文件的更多相关文章

  1. unar命令解压zip文件,解决中文乱码。

    unzip解压时,常出现中文乱码.可用unar来代替.

  2. CentOS 7 使用unzip解压zip文件提示未找到命令的解决方法

    故障现象: 解决方法: 如果你使用unzip命令解压.zip文件,提示未找到命令,可能是你没有安装unzip软件,下面是安装方法 [root@localhost www]# yum install - ...

  3. 在linux下 用p7zip 命令行下 解压 iso文件

    todo tomorrorw! 在linux下可以通过 mount IOSFILE.iso /media/myiso/ -o loop 这种方式挂载,然后直接从 目录中拷贝 iso的内容出来就可以. ...

  4. Ubuntu下压缩与解压各种文件的命令

    1.压缩与解压xz文件 (1)压缩 xz -z  filename (2)解压 xz -d  filename.xz 2.压缩与解压tar文件 (1)压缩 tar -cvf  filename(压缩到 ...

  5. AIX解压ZIP文件

    AIX系统自身是没有解压ZIP文件的,但在AIX安装oracle数据库服务器的话,在$ORACLE_HOME/bin路径下方却有unzip命令,可以解压ZIP文件. 一.shell脚本   之前的版本 ...

  6. Python通过调用windows命令行处理sam文件

    Python通过调用windows命令行处理sam文件 以samtools软件为例 一.下载或者索取得到windows版本的samtools软件,解压后如下: 进入文件内部,有如下几个文件: 二.将s ...

  7. linux下压缩成zip文件解压zip文件

    linux  zip命令的基本用法是: zip [参数] [打包后的文件名] [打包的目录路径] linux  zip命令参数列表: -a     将文件转成ASCII模式 -F     尝试修复损坏 ...

  8. Ubuntu18.04 解压zip文件乱码的解决方法

    在Ubuntu的系统下解压zip文件的时候居然出现了乱码,通过查找网上的资料,解决的办法有两种 一.通过unzip行命令解压,指定字符集,由于zip格式中并没有指定编码格式,Windows下生成的zi ...

  9. windows安装解压版postgresql

    1.postgresql解压版下载 2.将下载的postgresql-12.1-1-windows-x64-binaries.zip解压 data文件夹后面初始化数据库时手动创建的 3.初始化数据库 ...

随机推荐

  1. C# 反射的委托创建器

    原文:C# 反射的委托创建器 .Net 的反射是个很好很强大的东西,不过它的效率却实在是不给力.已经有很多人针对这个问题讨论过了,包括各种各样的 DynamicMethod 和各种各样的效率测试,不过 ...

  2. select函数使用

    这两天写了这么一段代码,select直接返回-1,错误信息是“invalid argments”,显然没有达到阻塞超时的效果. 代码如下: bool IsSocketWaitRead(inf fd,i ...

  3. 2019-9-23-asp-dotnet-core-3.0-接口返回-json-使用-PascalCase-格式

    title author date CreateTime categories asp dotnet core 3.0 接口返回 json 使用 PascalCase 格式 lindexi 2019- ...

  4. Android 开发 MediaRecorder视频录制入门

    前言 MediaRecorder是Android SDK提供用于录制音视频,关于音频的录制在我另一篇博客里已经介绍.传送门: https://www.cnblogs.com/guanxinjing/p ...

  5. ThinkPHP可以支持直接使用字符串作为查询条件

    ThinkPHP可以支持直接使用字符串作为查询条件,但是大多数情况推荐使用数组或者对象来作为查询条件,因为会更加安全. 大理石平台哪家好 一.使用字符串作为查询条件 这是最传统的方式,但是安全性不高, ...

  6. 0829NOIP模拟测试赛后总结

    这次发誓不会咕咕咕! 80分rank30完美爆炸. 拿到题目苏轼三连???貌似三篇古诗文我都会背啊hhh.爆零警告 T1没啥思路,打完暴力后想了大约20分钟决定分解个因数,在b次方中每一次方选择一个约 ...

  7. vuex基础知识总结

    项目中要求添加vuex,根据学习我这个小白总结了一点自己的心得,供大家参考 在学习之前,要知道两件事 为什么要用vuex?vuex要什么场景下应用? 简单点解释一下 1.项目中应用了vue脚手架之后, ...

  8. 《DSP using MATLAB》Problem 8.21

    代码: %% ------------------------------------------------------------------------ %% Output Info about ...

  9. python3-常用模块之sys

    import syssys 是和Python解释器打交道的sys.argvprint(sys.argv) # argv的第一个参数 是python这个命令后面的值 主要用途 1. 程序员 运维人员 在 ...

  10. logcat日志文件

    android日志系统提供了记录和查看系统调试信息的功能,日志都是从各个软件和一些系统的缓冲区中记录下来的,缓冲区可以通过logcat命令来进行查看和使用 开发者选项,有个选项叫做“日志记录器缓冲区大 ...