
我有一個資料夾,其中包含以下文件:
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”部分會阻止腳本壓縮批次檔本身。
希望這對某人有幫助...:)