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

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

Ветеран


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

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


Цитата Falcon99:
Т.е. вы предлагает не делать тестирование, а анализировать код возврата архиватора? »
Да.

Цитата Falcon99:
Просто никогда не работал с ERRORLEVEL и даже не представляю как его делать. »
Проще всего — посредством операторов && и ||, которые присутствуют и в Вашем коде. Например (не проверялось):
Скрытый текст
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set list=c:\temp\list.txt
set sLog=c:\temp\Log.txt

for /f "usebackq delims=" %%x in ("%list%") do (
	call :yesterday "%%x"
	set day_file=!ddmmyyyy:~0,2!
	set month_file=!ddmmyyyy:~3,2!
	set year_file=!ddmmyyyy:~6,4!

	"%ProgramFiles%\7-Zip\7z.exe" a -tzip "%%x_!year_file!-!month_file!-!day_file!.zip" "%%x" && (
		echo File [%%x] added into archive [%%x_!year_file!-!month_file!-!day_file!.zip] successfully.
		>>"%sLog%" echo echo %date:~0,8% %time:~0,8%	File [%%x] added into archive [%%x_!year_file!-!month_file!-!day_file!.zip] successfully.
		del /q "%%x"
	) || (
		echo Error occured while creating archive [%%x_!year_file!-!month_file!-!day_file!.zip].
		>>"%sLog%" echo echo %date:~0,8% %time:~0,8%	Error occured while creating archive [%%x_!year_file!-!month_file!-!day_file!.zip].
	)
)

endlocal
exit /b 0

:yesterday
	for /f %%i in ("%~1") do set data_modifed=%%~ti
	Set day_minus=0
	Set yyyy=%data_modifed:~6,4%
	Set /A mm=100%data_modifed:~3,2%%%100
	Set /A dd=100%data_modifed:~,2%%%100
	Set /A JD=%day_minus%+dd-32075+1461*(yyyy+4800+(mm-14)/12)/4+367*(mm-2-(mm-14)/12*12)/12-3*((yyyy+4900+(mm-14)/12)/100)/4
	Set /A L=JD+68569,N=4*L/146097,L=L-(146097*N+3)/4,I=4000*(L+1)/1461001
	Set /A L=L-1461*I/4+31,J=80*L/2447,K=L-2447*J/80,L=J/11
	Set /A J=J+2-12*L,I=100*(N-49)+I+L
	Set /A yyyy=I,mm=100+J,dd=100+K
	EndLocal& Set ddmmyyyy=%dd:~-2%.%mm:~-2%.%yyyy%

Цитата Falcon99:
Просто не представляю по какому принципу делать лог. Т.к. при архивировании выводится куча дополнительной информации которая там не нужна.
Поэтому думаю может брать строчку от теста. Т.е. что-то подобное "путь\файл - ок". »
Выделил красным.
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:41, 30-07-2018 | #5