
我有一個大資料夾樹。假設有名為 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
和ENTER。dir /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) 一起正常工作。