7-zip命令行

时间:2009-09-02 08:05:39

标签: command-line 7zip

我正在创建一个备份实用程序,用于压缩文本文件中列出的所有文件。我使用MS ACCESS作为我的前端和7-Zip进行压缩。这些是我正在使用的命令:

7zG.exe a c:\Backup\backup.zip
@c:\temp\tmpFileList.txt

所有文件都是在没有路径的情况下压缩的。有没有办法在zip文件中包含每个文件的路径?然后,当提取backup.zip时,文件将恢复到其原始文件夹结构。

由于

7 个答案:

答案 0 :(得分:6)

this 7-zip forum thread中,许多人表达了对此功能的渴望,7-zip的开发人员Igor指向FAQ question标题为“如何在档案中存储文件的完整路径?”实现类似的结果。

简而言之:

  • 按卷分隔文件(C:\上的文件一个列表,D:\上的文件列表等)
  • 然后为每个卷的文件列表,
    1. chdir到相应卷的根目录(例如,cd /d C:\
    2. 创建一个文件列表,其中路径 relative 到卷的根目录(例如,C:\Foo\Bar变为Foo\Bar
    3. 使用此新文件列表
    4. 执行7z a archive.7z @filelist
    5. 使用完整路径进行提取时,请确保首先将chdir指向相应卷的根目录

答案 1 :(得分:4)

7-Zip的命令行程序是7z或7za。这是可用选项的helpful post。 -r(recurse)选项存储路径。

答案 2 :(得分:1)

我没有调查过这个但是从臀部开始我会说他们在便携式设备中放弃了命令行支持。人们在便携式应用程序中没有做太多命令行的原因是操作系统(在你的情况下为Windows)要求将可执行文件添加到%path%包含列表中。

如果使用命令行实用程序不满足该要求,则相当繁琐。

7z -a

将是

d:\ portable \ z7 \ z7 -a c:\ to \ archive \ folder *。*

为所有内容打字就是为什么GUI对于便携式应用程序这样的东西有意义它(应用程序)可以记住它自己的位置并为你处理这些东西,如果你不能运行它,你知道它没有附加。

如果您真的希望便携式应用程序包含该应用程序,但您可以随时安装完整版本并将所需的7z.exe拉出并将其放入便携式文件夹中,确保其中包含所需的dll。

确保连接后,你必须设置你的路径。

http://www.redfernplace.com/software-projects/patheditor/ - 一个好的路径编辑器(向下),如果你有很多路径信息,那就很有用了。难以阅读。

http://www.softpedia.com/get/System/System-Miscellaneous/Path-Editor.shtml - 路径编辑器的alternet源

不建议修改temproary“便携式”驱动器的系统路径,尽管通过以下方式进行操作:

set path =%path%;“d:\ portable \ z7 \”;

运行dos cmd.exe或http://sourceforge.net/p/conemu/home/Home/

其他答案更好地解决了其他问题,我不会尝试......

http://www.codejacked.com/zip-up-files-from-the-command-line/ - z7和z7a命令行用法的良好参考。

PS:对不起,我觉得它需要一个更直接的答案为什么(即使它只是推测)。

答案 3 :(得分:1)

试试这个。它对我有用。 7z.exe和d:\ newFileName.7z" d:\ ExistingFile.txt"

打开cmd,如果您已安装7zip应用程序,请尝试此操作。 在命令提示符下,它将像c:\ programs和files \ 7zip \ 7z.exe和d:\ newFileName.7z" d:\ ExistingFile.txt"

答案 4 :(得分:0)

由于7-zip版本 9.25 alpha ,因此可以使用新的-spf开关来存储包含存档信号的完整文件路径。

7zG.exe a -spf c:\BAckup\backup.zip @c:\temp\tmpFileList.txt

现在应该工作得很好。

答案 5 :(得分:0)

7-Zip需要列表文件中的相对路径,否则它只会存储文件名,从而导致重复的文件名错误。

假设您的列表包含完整路径名:

  • 编辑列表文件以删除驱动器前缀C:\
  • 当您运行7Z以使用上面的列表文件时,请确保您位于驱动器的根目录中。
  • 然后它将存储路径并且不会抱怨重复的名称。它需要列表文件中的相对路径。

如果您的列表文件具有相对于另一个文件夹的路径,则应该从该文件夹运行7Z。

更新:我从上面的另一篇文章中注意到新的7-Zip有-spf选项,不需要上述步骤。尚未测试,但我的步骤适用于没有此选项的早期版本。

答案 6 :(得分:-1)

而不是选项a使用选项x,这将创建目录,但仅用于提取,而不是压缩。