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 | Обработка лога вынесена в подпрограмму. Теперь имя задания не должно содержать "-"...
| Всего записей: 2388 | Зарегистр. 12-10-2006 | Отправлено: 15:30 16-04-2018 | Исправлено: BorlandIMHO, 15:36 16-04-2018 |
|