7z - 壓縮子目錄中的文件,將其命名為父資料夾

7z - 壓縮子目錄中的文件,將其命名為父資料夾

我正在嘗試壓縮資料夾結構,如下所示:

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)\*.*"}

相關內容