gg.*_*gg. 106 compression command-line 7-zip
我有以下文件夹结构:
- 根
- 文件夹 1
- 文件夹 2
- 文件夹 3
- 7za.exe
我想运行 7-zip 命令行工具将所有文件压缩folder1到一个名为 .zip 的 zip 文件中folder1.zip。
运行以下
7za.exe a -tzip folder1.zip folder1\\*.*
Run Code Online (Sandbox Code Playgroud)
按预期生成一个 zip 文件。但是,当我打开 zip 文件时,其中有一个名为 的文件夹,其中包含该文件夹中的folder1所有文件。我不想将文件夹名称添加到 zip 文件夹中,即我想以“平面”文件格式添加所有文件。
我也不想为每个单独的文件/文件夹递归运行命令行工具。
是否有提供此功能的开关?
afr*_*ier 164
来自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 附加组件)时才需要它。
这对我有用
考虑像 C:\Parent\SubFolders 这样的文件夹结构......并且您想要创建parent.zip,它将包含所有文件和文件夹 C:\Parent 而没有父文件夹[即它将从 SubFolders 开始......]
cd /D "C:\Parent"
"7z.exe" a Parent.zip "*.*" -r
Run Code Online (Sandbox Code Playgroud)
这将在 C:\Parent 中创建 Parent.zip