Ms-Dos

如何在dos批處理中進行多操作的“for”

  • November 16, 2012

我需要壓縮文件夾和子文件夾中的所有文件 Bak,並在每個壓縮作業結束時刪除 bak 文件。我寫了這樣的東西,但它不起作用:

  for /F %%f in ('dir /s /b *.bak') do goto=1
  :1

  "7za.exe" a -t7z -mx3 "%%f.zip" "%%f"

  del "%%f"

這也應該這樣做,功能方式:

for /F %%f in ('dir /s /b *.bak') do call :myfunc %%f
goto :eof
:myfunc
7za.exe a -t7z -mx3 "%1.7z" "%1"
del "%1"
goto :eof

從頭頂上看,我目前不在 Windows 環境中,所以我無法驗證:

for /F %%f in ('dir /s /b *.bak') do (
 7za.exe a -t7z -mx3 "%%f.7z" "%%f"
 del "%%f"
)

請注意,我更改了文件的副檔名。

使用 -t7z 您正在創建一個 7z 文件:不是 zip。

順便說一下,-mx9 會給你更好的壓縮,但它會花費相當長的時間。

引用自:https://serverfault.com/questions/449379