从目录创建档案,而目录名称未添加到档案中


83

我具有以下文件夹结构:

    • 资料夹1
    • 资料夹2
    • 资料夹3
    • 7za.exe

我想运行7-zip命令行工具将所有文件压缩folder1到一个名为的zip文件中folder1.zip

运行以下

7za.exe a -tzip folder1.zip folder1\\*.*

产生预期的zip文件。但是,当我打开该zip文件时,该文件中有一个名为的文件夹folder1,并且其中包含该文件夹中的所有文件。我不想将文件夹名称添加到zip文件夹中,即我想以“平面”文件格式添加所有文件。

我也不想为每个文件/文件夹递归地运行命令行工具。

是否有提供此功能的交换机?


您可以cd进入folder1和7za.exe a -tzip ..\folder1.zip *.*吗?
zpletan 2011年

Answers:


136

7-Zip帮助文件中:

一个(添加)命令

将文件添加到存档。

例子

7z a archive1.zip subdir\

将文件夹subdir中的所有文件和子文件夹添加到存档archive1.zip。存档中的文件名将包含subdir \前缀。

7z a archive2.zip .\subdir\*

将文件夹subdir中的所有文件和子文件夹添加到存档archive2.zip。存档中的文件名将不包含subdir \前缀。

cd /D c:\dir1\

7z a c:\archive3.zip dir2\dir3\

归档文件c:\ archive3.zip中的文件名将包含dir2 \ dir3 \前缀,但它们将不包含c:\ dir1 \前缀。

因此,您想要的命令将是: 7za.exe a folder1.zip .\folder1\*

另外,请注意7-Zip对通配符的处理。它不会被*.*视为“所有文件”,而是“文件名中带有句点的所有文件”。无扩展名的文件将丢失。如果您确实想要所有文件,请*改用。

最后,-tzip如果归档文件名以结尾,则不需要此参数.zip。7-Zip非常聪明,可以确定在这种情况下所需的格式。仅在需要自定义扩展名时才需要(例如,7za.exe a -tzip foo.xpi <files>对于Mozilla附加组件)。


2

这对我有用

考虑文件夹结构,例如C:\ Parent \ SubFolders.....。您想创建parent.zip,其中将包含所有文件和文件夹C:\ Parent,而没有父文件夹[即,它将从SubFolders .....开始]

cd /D "C:\Parent"

"7z.exe" a Parent.zip "*.*" -r

这将在C:\ Parent中创建Parent.zip


2
这将重复另一个答案,并且不会添加任何新内容。除非您确实有新贡献,否则请不要发布答案。
DavidPostill

好吧,当我寻找解决方案时,我没有得到确切的解决方案。显然,我不会只复制粘贴一些我在网上找到的答案。我花了一些时间,所以我觉得应该分享。按照我的说法,您可以在这里以及我发布的Stack Overflow上找到确切的答案。
Pritesh Dhokchaule

请注意,7-Zip并不*.*意味着“所有文件”,而是“所有以句点作为文件名一部分的文件”。因此,此答案实际上将忽略没有扩展名的文件(已在接受的答案中注明)。
Bill_Stewart

1

只是为了扩展已接受的答案(我无法在此处添加评论):

在Linux上,添加'*'对我不起作用,因此我最终编写了更详细的命令行,从而获得了预期的结果:

curr_dir=$(pwd); \ 
cd source_code/lambda/ ; \
7z a ../../lambda.zip .; \
cd $curr_dir \
unset curr_dir

===========

脚本说明:

  • 保存当前目录路径以供以后使用;
  • 导航到需要存档的目录;
  • 创建存档(最后注意“。”(点));
  • 返回原始目录;
  • 摆脱存储原始目录路径的变量

我希望它可能对某人有用。


我建议*用引号引起来(否则外壳会将它扩展到此处的文件)。
西蒙·索比斯

-1

这个怎么样。例如Folder / subFolder1,Folder / subfolder2

选择所有子文件夹>右键单击然后创建存档>选择任何格式

*档案名称将是父文件夹。

简单吧?


3
问题是关于7-zip的CLI,而不是关于如何使用GUI。当您想自动化时,学习如何使用GUI毫无意义。
Binki
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.