2012-07-12 307 views
2

我已经搜索了如何使用7z在Windows cmd上压缩文件/文件夹,我发现压缩到:zip,tar,7z,。 .etc但不能是.tar.gz .tar.bz2格式或Windows CMD文件/文件夹压缩使用7z或替代.tar.gz

这是我的文档用户:http://www.dotnetperls.com/7-zip-examples

,这里是我用过的命令:

for /d %%X in (*) do "c:\Program Files\7-Zip\7z.exe" a -t7z "%%X.7z" "%%X\" 

更改 “7z格式” 中将“%% X.7z”“-t7z”添加到所需的扩展名中,即可获得所需的结果。但不幸的是,这种方式不适用于.tar.gz

我需要使用gzip压缩&当然不知道CMD如何。任何方式?我确定有一种使用7z bot的方法?如果还有其他选择,那就OK。

回答

8

解决。如果你想以一个互动的CMD控制台中直接执行该

for /d %%X in (*) do "c:\Program Files\7-Zip\7z.exe" a -ttar "%%X.tar" "%%X\" 
for %%X in (*.tar) do "c:\Program Files\7-Zip\7z.exe" a -tgzip "%%X.gz" "%%X" 

注意,双%标志应被删除:您可以通过编写具有下列内容的CMD批处理文件做到这一点。

+0

此脚本将迭代当前目录中的子目录并将它们打包到单独的存档中。 – Vadzim 2016-10-28 19:55:01

0

.tar.gz实际上是两种格式。 TAR是一个包含多个文件的未压缩存档。 GZIP是一个包含单个tar文件的压缩文件。

所以,你需要做的是在命令行

例如两个步骤,将文本文件添加到files.tar.gz

7z.exe a -ttar files.tar *.txt 
7z.exe a -tgzip files.tar.gz files.tar 
+0

我知道.tar.gz是两种格式,.tar是未压缩的存档,而.gz是压缩的。但问题仍然存在,如何去做? – Omranic 2012-07-12 11:46:31

+0

你能编辑这一行吗?pelase:for/d %% X in(*)do“c:\ Program Files \ 7-Zip \ 7z.exe”a -t7z“%% X.7z”“%% X \“ – Omranic 2012-07-12 11:46:48

2

7-Zip的9.20就可以避免for循环只需添加\在名称结束,这个工作对我来说:

set "_dir=%1" set "_7zexe=c:\<my-7z-dir>\7z.exe" "%_7zexe%" a -ttar %_dir%.tar %_dir%\ "%_7zexe%" a -tgzip %_dir%.gz %_dir%.tar

0

这里是一个班轮:

7za a dummy -ttar -so @filelist | 7za a pack.tgz -sipack.tar -tgzip -mx9 

for /d %%X in (*) do (7za a dummy -ttar -so "%%X\" | 7za a %%X.tgz -tgzip -si%%X.tar)