
我正在嘗試壓縮資料夾結構,如下所示:
Root
|_ Folder
|_Sub Folder 1
|_Files
|_Sub Folder 2
|_Files
|_ *more Sub Folders*
我需要為每個包含子資料夾中的文件的子資料夾建立 .zip 文件,並且需要為子資料夾命名。因此,如果我在“資料夾”中運行命令,我會得到一個以每個子資料夾命名的 zip 文件,其中僅包含子資料夾的內容(而不是剛剛壓縮的子資料夾)。
我已經在 Windows 上使用 7-zip 嘗試了各種命令,但似乎無法得到它。
for /d %i in (*) do 7z a -oC:\Temp... %i.zip
這只是壓縮整個資料夾內容並循環為每個子資料夾名稱建立存檔。
我感謝您提供的任何幫助!
答案1
最簡單的方法是安裝 TotalCommander(來自 ghisler 的網站),選擇所需的子目錄(可以使用數字鍵盤上的 * 來切換所有子目錄)。 Alt-F5 壓縮器的捷徑。選取“建立單獨的存檔,每個選定的檔案/目錄一個”,選擇所需的壓縮器並確定。
您可以批量使用:
@echo off
for /d %%i in (*) do (
echo Compressing %%i
7z a "C:\TEMP\%%i.7z" -r "%%i\*.*"
)
或在 CMD 行:
for /d %i in (*) do 7z a "C:\TEMP\%i.7z" -r "%i\*.*"
答案2
您也可以使用 Powershell :
Get-ChildItem -Path "C:\Root\Folder" -Force -Directory -ErrorAction Continue | foreach {Start-Process "C:\Program Files\7-Zip\7z.exe" -ArgumentList "a C:\TEMP\$_.7z -r $($_.FullName)\*.*"}