Имя пользователя:
Пароль:
 

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

Ветеран


Contributor


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

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


nik123456654321,
Код: Выделить весь код
@Echo Off
cls
	Set "BoxIn=D:\Photo"
	Set "Mask=*.jpg"
	Set "FileOut=D:\Photo\Photo.zip"

	Set "Arc="C:\Program Files\7-Zip\7z.exe" a -mx5 -sdel --"

	Set /A NContr=32

	If Not Exist "%BoxIn%\" (Echo !!! Folder "%BoxIn%\" not exists. Script Exit. &Pause &Exit /B 2)
	If Exist "%FileOut%" (Echo !!! File "%FileOut%" already exists. Script Exit. &Pause &Exit /B 2)

	Set /A N=0
	FOR /F "usebackq delims=" %%d IN (`2^>nul Dir "%BoxIn%\" /B /A:D /O:-D`) DO (
		FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\%%d\%Mask%" /B /A:-D /O:D`) DO (
			Call Ren "%BoxIn%\%%d\%%f" %%N%%%%~xf
			Set /A N+=1
		)
		Call :Pack "%BoxIn%\%%d\%Mask%" "%FileOut%" %%N%% %NContr% &&Exit /B
	)
	If "%N%"=="0" (Echo !!! In Subfolders of Folder "%BoxIn%\" files %Mask% not found. Script Exit. &Pause &Exit /B 2) 
Exit /B

:Pack
	If "%3"=="0" Exit /B 1
	%Arc% %2 %1 &&Rd /S /Q "%~dp1"

	If Not "%3"=="%4" Echo. &Echo Found In %1 files N=%3^<^>%4 files &Echo. &Pause
Exit /B 0
Если хочется, чтобы процесс исполнялся многократно быстрее, замените -mx5 на -mx0
Конечно, размер архивного файла будет больше, но, для jpg не намного (менее процента).

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


Последний раз редактировалось megaloman, 20-08-2019 в 14:27.

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

Отправлено: 13:58, 20-08-2019 | #4