我创建了这个批处理文件来将我的 epub 文件压缩到 epub 中。
它会检查现有的 epub 并将其删除。
它检查当前文件夹名称,然后简单地创建一个具有相同名称的 zip 文件。然后,它将该.zip重命名为 .epub
for %%a in (.) do set currentfolder=%%~na
del *.epub
7z a -tzip %currentfolder%.zip META-INF OPS mimetype
rename *.zip *.epub
但是我没有通过此 epub 文件的验证。 http://validator.idpf.org/给了我以下两个需要修复的错误。
- Mimetype 条目丢失或不是存档中的第一个条目
- 项目(OPS/图像/拇指.db)存在于 zip 文件中,但不是在 OPF 文件中声明
1.如何强制 mimetype 文件成为存档中的第一个文件?
2.如何删除此拇指.db,我可以在存档中看到它,但在资源管理器中看不到它?
提前谢谢你
将 mimetype 作为 zip 名称之后的第一个文件规范,应该首先处理它。
查找7zip的文件排除功能并用拇指使用它.db因为它是一个隐藏文件。
Ferroao 的想法是正确的,但可以简化:
cd "folder of epub content"
# add mimetype 1st
zip -0 -X ../file.epub mimetype
# add the rest
zip -9 -X -r -u ../file.epub *
第二个命令上的 -u 告诉 Zip 只添加新/更改的文件,因此它将在第二次传递时跳过 mime 类型。
首先放入mimetype
,但不压缩。
mimetype 移动到 epub 文件开头的脚本,请参阅此答案,方法是添加文件名 !mimetype 以使其排在第一位。 然后在 zip 文件中重命名为 mimetype。 https://superuser.com/a/966241
他们的关键是在zip文件中重命名,如下所示:
"C:Program Files7-Zip7z.exe" a myfile.zip !mimetype
"C:Program Files7-Zip7z.exe" rn myfile.zip !mimetype mimetype
我不能用 7z,结束了:
cd "folder of epub content"
# add mimetype 1st
zip -0 -X ../file.epub mimetype
# avoid writing it again in the next step, here I renamed
mv mimetype backup_mimetype
# add the rest
zip -9 -X -r ../file.epub *