2011-09-26 16:51:38 +0000 2011-09-26 16:51:38 +0000
86
86

从目录中创建存档,而不将目录名添加到存档中。

我的文件夹结构如下。

  • root
  • folder1
  • folder2
  • folder3
  • 7za.exe

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

运行下面的

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

如期产生一个压缩文件。然而,当我打开这个压缩文件时,它有一个名为folder1的文件夹,里面有该文件夹内的所有文件。我不想将文件夹名添加到zip文件夹中,也就是说,我想将所有文件以 “扁平 "文件格式添加。

我也不想为每个单独的文件/文件夹反复运行命令行工具。

是否有一个开关可以提供这个功能?

回答 (4)

141
141
141
2011-09-26 17:25:54 +0000

来自 7-Zip 帮助 文件。

a (Add) 命令

添加文件到存档。

示例

`7z a archive1.zip subdir来自 [ 7-Zip 帮助 ]0x3& 文件。

[ a (Add) 命令 ]0x3&

添加文件到存档。

示例

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

7z a archive2.zip .\subdir\*

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

`cd /D c:\dir1来自 [ 7-Zip 帮助 ]0x3& 文件。

[ a (Add) 命令 ]0x3&

添加文件到存档。

示例

`7z a archive1.zip subdir来自 [ 7-Zip 帮助 ]0x3& 文件。

[ a (Add) 命令 ]0x3&

添加文件到存档。

示例

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

7z a archive2.zip .\subdir\*

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

`7z a c:\archive3.zip dir2\dir3来自 [ 7-Zip 帮助 ]0x3& 文件。

[ a (Add) 命令 ]0x3&

添加文件到存档。

示例

`7z a archive1.zip subdir来自 [ 7-Zip 帮助 ]0x3& 文件。

[ a (Add) 命令 ]0x3&

添加文件到存档。

示例

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

7z a archive2.zip .\subdir\*

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

`cd /D c:\dir1来自 [ 7-Zip 帮助 ]0x3& 文件。

[ a (Add) 命令 ]0x3&

添加文件到存档。

示例

`7z a archive1.zip subdir来自 [ 7-Zip 帮助 ]0x3& 文件。

[ a (Add) 命令 ]0x3&

添加文件到存档。

示例

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

7z a archive2.zip .\subdir\*

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

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

所以你想要的命令是: 7za.exe a folder1.zip .\folder1\*

另外,注意7 -Zip对通配符的处理。它不会把*.*当作 “所有文件”–它的意思是 “所有文件名中带句号的文件"。无扩展名的文件将被遗漏。如果你真的想要所有文件,就用*来代替。

最后,如果归档文件名以-tzip结尾,.zip参数是不需要的。7-Zip很聪明,它可以计算出你在这些情况下想要的格式。只有当你想要一个自定义的扩展名时才需要这个参数(比如Mozilla附加组件的7za.exe a -tzip foo.xpi <files>)。

2
2
2
2016-06-07 18:04:40 +0000

这对我来说是有效的

考虑文件夹结构,比如 C:\Parent\SubFolders…..。你想创建parent.zip,它将包含C:\Parent的所有文件和文件夹,但不包含父文件夹[即它将从SubFolders…..开始]

cd /D "C:\Parent"

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

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

1
1
1
2018-07-17 10:49:04 +0000

只是为了扩展被接受的答案(我无法在那里添加注释):

在Linux上添加’/*‘对我来说不起作用,所以我最终编造了更多的命令行,得到了想要的结果:

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

===========

脚本解释。

  • 保存当前的目录路径以便以后使用;
  • 导航到需要存档的目录;
  • 创建存档(注意末尾的’.‘(点));
  • 返回到原始目录;
  • 摆脱存储原始目录路径的变量

我希望它对某人有用。

-1
-1
-1
2017-03-17 05:23:32 +0000

比如文件夹/子文件夹1, 文件夹/子文件夹2

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

归档名称是父文件夹… …

简单吧?