2012-07-12 305 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)