如何使用 7 zip 在單一指令中傳遞多個檔案進行壓縮?

如何使用 7 zip 在單一指令中傳遞多個檔案進行壓縮?

我有一個資料夾,其中包含以下文件:

destiny.txt
destiny1.txt
destiny2.txt
destiny3.txt
destiny4.txt
destiny5.txt
destiny6.txt
destiny7.txt

其中命運1.txt、命運4.txt、命運6.txt來自batch1。

我用來7zip壓縮檔案。

我可以一步傳遞這 3 個檔案來建立DestinyTest.zip嗎?

是否可以?

答案1

我可以一步傳遞這 3 個檔案來建立DestinyTest.zip嗎?

您可以使用 7zip 的命令列版本,即7z.

從命令列:

7z a -tzip DestinyTest.zip destiny1.txt destiny4.txt destiny6.txt
  • a- 將檔案新增至存檔。
  • -tzip- 指定存檔的類型(我們正在建立zip存檔)。

進一步閱讀

答案2

如果您有一個列出要製作 zip 的文件的文件,例如

建立要歸檔的文件列表,每行一個。這是一個 @-list,從 DOS 時代開始,許多程式都會為每一行執行此操作。

您可以使用 建立這樣的文件dir /b destin*.* > zipme.lst,然後在 ascii 編輯器(記事本或編輯)中刪除行。

type zipme.lst destiny1.txt destiny4.txt destiny6.txt 7za a -tzip DestinyTest.zip @zipme.lst

這將找到 zipme.lst,並添加其中列出的所有檔案。它可以比命令列更長,並且您可以對其進行一些控制。

答案3

我有一個類似的問題,想用批次腳本。具體方法如下:

在下面的範例中,腳本會尋找以“cell_cfg”和“slave_cfg”開頭的所有.csv 文件,收集它們,並將它們壓縮到一個名為“cfg.7z”的檔案中,該檔案儲存在名為“ zip」的子目錄中:

@ECHO OFF
setlocal enableDelayedExpansion
mkdir zip
ECHO collecting filenames...
set filenames="C:\Program Files\7-Zip\7z.exe" a -t7z "zip/cfg.7z
FOR %%i IN (cell_cfg*.csv) DO (
    ECHO "%%i" | FIND /I "zip_cfg.bat" 1>NUL) || (
        SET filenames=!filenames!" "%%i
    )
)
FOR %%i IN (slave_cfg*.csv) DO (
    ECHO "%%i" | FIND /I "zip_cfg.bat" 1>NUL) || (
        SET filenames=!filenames!" "%%i
    )
)
set filenames=%filenames%"
%filenames%

(調整 7z.exe 的路徑和檔案/資料夾名稱。如果您想要 .zip 而不是 .7z,請重新命名這些行:

set filenames="C:\Program Files\7-Zip\7z.exe" a -t7z "zip/cfg.7z

進入

set filenames="C:\Program Files\7-Zip\7z.exe" a -tzip "zip/cfg.zip

我將其另存為“zip_cfg.bat”,並將其放入包含我要壓縮的檔案的資料夾中。然後我可以在命令列中調用它:首先,導航到包含文件的資料夾,然後只需調用:

zip_cfg.bat

如果您想要壓縮資料夾(“*”)中的所有文件,“FIND /I "zip_cfg.bat" 1>NUL”部分會阻止腳本壓縮批次檔本身。

希望這對某人有幫助...:)

相關內容