我需要将文件夹和子文件夹中的所有文件压缩为 Bak,并在每次压缩作业结束时删除 bak 文件。我写了类似这样的代码,但它不起作用:
for /F %%f in ('dir /s /b *.bak') do goto=1
:1
"7za.exe" a -t7z -mx3 "%%f.zip" "%%f"
del "%%f"
答案1
这也应该可以做到,功能性的方式:
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
答案2
据我所知,我目前不在 Windows 环境中,因此无法验证:
for /F %%f in ('dir /s /b *.bak') do (
7za.exe a -t7z -mx3 "%%f.7z" "%%f"
del "%%f"
)
请注意,我更改了文件的扩展名。
使用 -t7z 您将创建一个 7z 文件:不是 zip。顺便说
一下,-mx9 会给您更好的压缩效果,但会花费更长的时间。