Цитата sancher:
Что должно было получиться: »
|
Не должнО. Задача понималась так: имеем некоторую папку с подпапками с файлами, которые надо архивировать и сохранить в другом месте.
Если заархивированные файлы надо оставить в тех же папках, где находились исходные, то:
- в один архив с именем папки, содержащей эти файлы
Код:
@Echo Off
Set "BoxIn=Z:\Box_Arc"
Set "Mask1=*.log"
Set "Mask2=log*.txt"
Set ARC="C:\Program Files\7-Zip\7z.exe" a -mx1 -sdel
Call :MyArc "%BoxIn%"
FOR /F "usebackq delims=" %%d In (`2^>nul Dir /B /A:D /S "%BoxIn%\"`) DO (
Call :MyArc "%%d"
)
Exit /B
:MyArc
If Not Exist "%~1\%Mask1%" If Not Exist "%~1\%Mask2%" Exit /B
Echo %1
>nul %ARC% "%~1\%~nx1.zip" "%~1\%Mask1%" "%~1\%Mask2%"
Exit /B
- в одной папке в отдельные архивы с именем файла
Код:
@Echo Off
Set "BoxIn=Z:\Box_Arc"
Set "Mask1=*.log"
Set "Mask2=log*.txt"
Set ARC="C:\Program Files\7-Zip\7z.exe" a -mx1 -sdel
FOR /F "usebackq delims=" %%f In (`2^>nul Dir /B /A:-D /S "%BoxIn%\%Mask1%" "%BoxIn%\%Mask2%"`) DO (
Echo "%%f"
>nul %ARC% "%%f.zip" "%%f"
)
Exit /B