Мне нужно заархивировать все файлы 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, кстати, даст вам лучшее сжатие, но это займет немного больше времени.