使用批处理文件和7zip压缩epub

时间:2013-09-16 09:37:10

标签: batch-file 7zip epub3

我创建了这个批处理文件,将我的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 / image / Thumbs.db)存在于zip文件中,但不是 在OPF文件中声明

1.如何强制mimetype文件成为存档中的第一个?

2.如何删除这个thumbs.db,我可以在档案中看到它,但我在资源管理器中看不到它?

提前谢谢

5 个答案:

答案 0 :(得分:2)

将mimetype作为zip名称后面的第一个filespec,应该先处理它。

查找7zip的文件排除功能,并将其与thumbs.db一起使用,因为它是一个隐藏文件。

答案 1 :(得分:0)

先放入mimetype,但不要压缩。

答案 2 :(得分:0)

请参见此答案,以获取将mimetype移至epub文件开头的脚本,方法是将其与文件名!mimetype一起添加,以使其成为第一个。然后在zip文件中重命名为mimetype。 https://superuser.com/a/966241

关键是要在zip文件中重命名,如下所示:

"C:\Program Files\7-Zip\7z.exe" a myfile.zip !mimetype
"C:\Program Files\7-Zip\7z.exe" rn myfile.zip !mimetype mimetype

答案 3 :(得分:0)

我无法使用7z,结束了:

01:04

答案 4 :(得分:0)

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 类型。