使用 7zip 提取多個資料夾中的多個 zip

使用 7zip 提取多個資料夾中的多個 zip

我有一個大資料夾樹。假設有名為 A、B、C 等到 Z 的資料夾。

我可以選擇資料夾中的所有 zip,右鍵單擊,選擇 7zip,然後選擇解壓縮到“*”,效果非常好。例如,如果我對資料夾 A 中的 zip 執行此操作,A 將包含每個 zip 的資料夾,其中包含 zip 的內容。

我想要做的是搜尋所有資料夾 (AZ) 中的所有 zip 檔案並一次執行此操作,這樣每個資料夾 (AZ) 最終都會包含它們包含的所有 zip 的資料夾。

實際發生的情況是 7zip 將所有內容提取到它遇到的第一個資料夾(例如 A)。

有誰知道如何做到這一點?

答案1

您可以使用 Windows 命令列。只需點擊 Windows 徽標,鍵入cmd並按ENTER。然後透過鍵入cd c:\my\example\dir和移動到包含 zip 檔案的子目錄的目錄ENTER,如果它位於另一個磁碟機上,請i:再次鍵入 eg 和ENTER切換到該磁碟機。現在,正確的路徑將顯示在遊標之前。然後輸入

for /F "usebackq" %f in (`dir /b/a:d`) do @echo %f

ENTERdir /b/a:d每個目錄返回一行。對於每一行,do都會執行後面的指令。@echo %f將簡單地將找到的名稱寫在螢幕上,這樣您就可以安全地控制刪除後將執行的操作@echo。在你的情況下,你需要類似的東西

for /F "usebackq" %f in (`dir /b/a:d`) do C:\APPS\7-Zip\7z.exe x .\%f\*.zip -o%f

這將為每個子目錄呼叫 7zip 命令列可執行檔(您需要調整C:\APPS\7-Zip\系統的路徑)並將所有 zip 檔案(包括其完整路徑)提取到目前子目錄中。有關 7zip 語法的更多信息,請訪問https://www.dotnetperls.com/7-zip-examples

如果您一遍又一遍地這樣做,您可以創建一個簡單的.cmd 檔案與上述突擊隊,但您很可能需要將 % 替換為 %% 才能使其工作。

答案2

我讓它按照我想要的方式工作。正確的命令是:

for /F "tokens=*" %%g in ('dir /b/a:d') do "C:\Program Files\7-Zip\7z.exe" x ".\%%g\*.zip" -o"%g\*" -aos

答案3

如果您使用的是 Windows,請導航至包含資料夾 A、B、C 和 D 的根資料夾,然後進行搜索,*.zip*.rar在Windows 搜尋中選擇/突出顯示所有zip,然後使用7-zip 執行您想要的任何操作。應該也可以與 dolphin(linux) 一起正常工作。

相關內容