Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


Цитата 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

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:01, 23-01-2022 | #13