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

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

Ветеран


Contributor


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

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


it3,
Вот решение по Вашей идеологии, пропишите свои пути и подпапки
Если конкретно указывать папки, то
Код: Выделить весь код
@Echo Off
cls
	Set "BoxIn=Z:\Share\LOGS"
	Set "SubBox="Folder1" "Folder2" "Folder3" "Folder4""
	Set "Mask=*.txt"
rem	Set "Mask=*.*"

	Set ARC="%ProgramFiles(x86)%\7-Zip\7z.exe" a -tzip -mx9 -sdel
rem	Set ARC="%ProgramFiles%\7-Zip\7z.exe" a -tzip -mx9 -sdel


	FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "Tdate=%%d"
	Set "Xdate=%Tdate:~4,2%-01-%Tdate:~0,4%"
	Set /A Zdate=%Tdate:~0,4%%Tdate:~4,2%
	If %Zdate:~4,2%==01 (Set /A Zdate=%Zdate%-89) Else (Set /A Zdate=%Zdate%-1)

	For %%d In (%SubBox%) Do Call :ArcDir "%BoxIn%" "%%~d" "%Mask%" "%Xdate%" "%Zdate%"
Pause
GoTo :Eof

:ArcDir
	Echo "%~1\%~2\%~3" "%~2_%~5"  

	Set "Source=%~1\%~2"
	Set "Dst=%Source%\bkp"
	Set "Dst_Tmp=%Dst%\tmp"
	If Not Exist "%Dst_Tmp%" md "%Dst_Tmp%"
	Pushd "%Dst_Tmp%" || (Echo "%Dst_Tmp%" not found &Exit /B 1)

	xcopy /l /D:%~4 "%Source%\%~3" "%Tmp%" >"%Dst_Tmp%\~tmp.tmp" 2>nul
	FOR /F "usebackq delims=" %%f in (`xcopy /L /D /Exclude:~tmp.tmp "%Source%\%~3"`) DO If Exist "%%f" Move /Y "%%f" "%Dst_Tmp%\" >nul
	Del ~tmp.tmp

	%Arc% "%Dst%\%~2_%~5.zip" %3 >nul

	Popd
GoTo :Eof
Если обработать все подпапки указанной папки
Код: Выделить весь код
@Echo Off
cls
	Set "BoxIn=Z:\Share\LOGS"
	Set "Mask=*.txt"

	Set ARC="%ProgramFiles(x86)%\7-Zip\7z.exe" a -tzip -mx9 -sdel

	FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "Tdate=%%d"
	Set "Xdate=%Tdate:~4,2%-01-%Tdate:~0,4%"
	Set /A Zdate=%Tdate:~0,4%%Tdate:~4,2%
	If %Zdate:~4,2%==01 (Set /A Zdate=%Zdate%-89) Else (Set /A Zdate=%Zdate%-1)

	FOR /F "usebackq delims=" %%d in (`Dir "%BoxIn%" /A:D /B 2^>nul`) DO (
		Call :ArcDir "%BoxIn%" "%%~d" "%Mask%" "%Xdate%" "%Zdate%"
	)
Pause
GoTo :Eof
И далее процедура из предыдущего кода

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


Последний раз редактировалось megaloman, 17-09-2018 в 09:41. Причина: Дополнение решения в связи с уточнением постановки

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

Отправлено: 20:55, 15-09-2018 | #7