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

Batch file 使用批处理文件和7zip压缩epub,batch-file,7zip,epub3,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文件的验证。给出了我需要修复的

我创建这个批处理文件是为了将我的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文件的验证。给出了我需要修复的以下两个错误

  • Mimetype条目丢失或不是存档中的第一个条目
  • 项目(OPS/image/Thumbs.db)存在于zip文件中,但不存在 在OPF文件中声明
1.如何强制mimetype文件成为存档中的第一个文件

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


提前感谢您

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


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

mimetype
放在第一位,但不压缩。

通过添加文件名,将mimetype移动到epub文件开头的脚本,请参见此答案!mimetype以使其成为第一个。然后在zip文件中重命名为mimetype

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

"C:\Program Files\7-Zip\7z.exe" a myfile.zip !mimetype
"C:\Program Files\7-Zip\7z.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 *

我已经添加了排除标签,效果非常好,谢谢。mimetype问题仍然没有解决。不管我把mimetype放在filespec的什么地方,7zip都会按字母顺序添加它们。第一个将创建归档并包含mimetype。第二个将
与其余文件一起添加到存档中。关于thumbs.db:您的命令只添加特定的文件,因此无论如何都不应该添加thumbs.db。我使用了两个7zip命令行,但仍然得到一个关于mimetype丢失的错误。我不认为7zip保留了文件添加的顺序。