| | BorlandIMHO 
 Silver Member
 | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору 
 Цитата:
 | время выводится не очень корректно: | 
 На опубликованном Вами куске лога у меня выводится корректное время...
 
 Цитата:
 | если имя задания содержит пробел, то выводится часть до него | 
 Логично, ибо в логе-примере никаких пробелов в имени задания нет, и я предположил, что их и не бывает...
 
 Если время всегда в восьмой строчке:
 Код:
 Обработка лога вынесена в подпрограмму.| @echo OFF setlocal enabledelayedexpansion
 call :GETVARS
 setlocal disabledelayedexpansion
 echo Дата: %LOGDATE%
 echo Время: %LOGTIME%
 echo Имя задания: %TASKNAME%
 pause
 exit /b 0
 
 :GETVARS
 REM номер строки, из которой тащим дату и имя задания
 set /a DATESTRING=2
 REM номер строки, из которой тащим время старта. "-1" из-за особенностей обработки пустых строк в for.
 set /a TIMESTRING=8-1
 REM Счётчик строк для использования в цикле
 set /a SCOUNT=0
 REM разгребаем :-)
 for /f "tokens=1,2,3 delims=^|:[]-" %%A in (LastSyncs.log) do (
 set /a SCOUNT+=1
 if !SCOUNT! == %DATESTRING% (set "LOGDATE=%%A" && set "TASKNAME=%%~B")
 if !SCOUNT! == %TIMESTRING% (set "LOGTIME=%%A:%%B:%%C" & exit /b 0)
 )
 REM Следующая команда в принципе не нужна, ибо никогда не достигается, если в логе более 7 строк, но пусть будет
 exit /b 1
 
 
 | 
 Теперь имя задания не должно содержать "-"...
 
 
 
 |  | Всего записей: 3096 | Зарегистр. 12-10-2006 | Отправлено:  15:30 16-04-2018  | Исправлено: BorlandIMHO,   15:36 16-04-2018
 | 
 |