Ms-Dos
如何在dos批處理中進行多操作的“for”
我需要壓縮文件夾和子文件夾中的所有文件 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 會給你更好的壓縮,但它會花費相當長的時間。