一、程序脚本
有很多mobi格式的漫画资源,放到kindle中看又不是很爽,研究了一下,找到了一个批量解析mobi文件中的图片并自动压缩成zip压缩包的方法,完整的bat批处理文件的内容如下
@echo off
for %%f in (*.mobi) do (
echo "start handle %%f"
python D:\ProgramFiles\KindleUnpack-081\lib\kindleunpack.py "%%f"
echo "start compress"
D:\ProgramFiles\WinRAR\WinRAR.exe a -y -ep1 "%%~nf.zip" "%%~nf\mobi7\Images\*"
rd /s /q "%%~nf"
)
pause
以上脚本中的kindleunpack.py文件路径以及WinRAR文件路径需要自行替换。
将该脚本放在和mobi文件同一个目录下运行,运行效果是这样的
运行原理:
该脚本会首先使用kindleunpack.py工具类将mobi文件解析出来,解析到同名的目录中,解析完了之后,提取出漫画图片,利用WinRAR中的程序WinRAR.exe打包成同名压缩包。
所以要想运行该脚本,需要满足以下几个条件:
1、已安装最新python程序
2、已安装WinRAR
3、下载好mobi解析程序kindleunpack
二、依赖安装和配置
python和WinRAR的安装很简单,不赘述。说下其它细节。
1、kindleunpack下载
下面是 KindleUnpack 项目及其 Calibre 插件发布地址,可以在这里获取最新版本:
- KindleUnpack 项目发布地址:Github 发布页面
- Calibre 插件发布地址:Github 发布页面
下面是 KindleUnpack 各个版本的下载链接,请根据自己所使用的系统选择下载:
- 带界面的 pyw 格式 Python 脚本: KindleUnpack-081.zip | 百度网盘〈提取码:
qb7i
〉 - 支持拖放操作的 Mac 版本(64 位):KindleUnpack 64 v0.81.app.zip | 百度网盘〈提取码:
b35g
〉 - 支持拖放操作的 Mac 版本:KindleUnpack v0.81.app.zip | 百度网盘〈提取码:
qpza
〉 - 仅支持 mobi 文件的单文件脚本:mobiunpack 32.py.zip | 百度网盘〈提取码:
rhbz
〉 - 依附于 Calibre 运行的插件版本:kindle_unpack_v0831_plugin.zip | 百度网盘〈提取码:
1nxt
〉
以上内容来源于文章:《KindleUnpack:拆解 Kindle 电子书文件的利器》
下载带界面的 pyw 格式 Python 脚本,解压即可看到kindleunpack.py
。
2、WinRAR
WinRAR下载好之后打开安装目录,即可看到WinRAR.exe文件,关于WinRAR命令行中的具体使用方式,可以参考同目录下的WinRAR.chm帮助文档。
它的基本命令语法格式:WinRAR <命令> -<参数1> -<参数N> <压缩文件 > <文件...> <@列表文件...> <解压路径>
例如这里我想压缩文件使用的命令:D:\ProgramFiles\WinRAR\WinRAR.exe a -y -ep1 "%%~nf.zip" "%%~nf\mobi7\Images\*"
- a:参数添加文件到压缩文件的意思
- -y:如果有交互询问,则回应“是”
- -ep1:从名称中排除主文件夹,不要存储或解压在命令行所输入的路径。
肯定会有人问,为什么不用rar.exe
,rar.exe是同安装目录下的“命令行版”WinRAR,在命令行中使用它岂不是更合适?
WinRAR.exe和rar.exe用法差不多,但是它们有个很要命的差别:rar.exe不支持zip压缩,即使指定了压缩文件名后缀为zip,它的格式实际上还是rar类型,为此我还踩了坑。。。WinRAR开始菜单中有命令行使用手册
它明确指出了: RAR 只支持 RAR 格式压缩文件,它默认有 .rar 扩展名。不支持 ZIP 和其他格式。即使创建压缩文件时指定了 .zip 扩展名,它仍然是 RAR 格式的。Windows 用户可以安装 WinRAR,它支持更多的压缩文件类型,包括 RAR 和 ZIP 格式。
所以要想在命令行中压缩zip,还是得使用WinRAR而不能使用rar。
END.
注意:本文归作者所有,未经作者允许,不得转载