PDA

Показать полную графическую версию : [решено] BAT файл, время в цикле


alex25ru
12-07-2016, 13:46
Всем доброго времени суток! Ребят, подскажите, каким образом обойти следующую неприятность. Имеет batch файл следующего содержания:

@echo off
@SETLOCAL
@CHCP 1251
@CLS
FOR /F "USEBACKQ DELIMS=" %%a IN ("dblist.txt") DO (
ECHO ' >> log.txt
ECHO "%date% %time% - begin: %%a" >> log.txt
"C:\Program Files (x86)\XSoft\App\Bin.exe" %%a"
ECHO "%date% %time% - end: %%a" >> log.txt
ECHO ' >> log.txt
)

"Думает" скрипт довольно долго, ожидая завершения запущенного процесса, а время выводит все время одно и тоже. Переменные %date% %time% в цикле не обновляют свои значения , что можно сделать, каким образом получить для каждой итерации актуальное время?

Elven
12-07-2016, 14:43
если моя память не спит с другим достаточно в SETLOCAL указать ENABLEDELAYEDEXPANSION и при запросе даты времени вместо %% использовать !!
@echo off
@SETLOCAL ENABLEDELAYEDEXPANSION
@CHCP 1251
@CLS
FOR /F "USEBACKQ DELIMS=" %%a IN ("dblist.txt") DO (
ECHO ' >> log.txt
ECHO "!date! !time! - begin: %%a" >> log.txt
"C:\Program Files (x86)\XSoft\App\Bin.exe" %%a"
ECHO "!date! !time! - end: %%a" >> log.txt
ECHO ' >> log.txt
)

Опиум
13-07-2016, 09:14
alex25ru, можно использовать сторонние утилиты типа now.exe из старого доброго RK

alex25ru
13-07-2016, 09:20
Elven, работает как надо. В общем то, что доктор прописал. Большое спасибо, тему можно закрывать.

Опиум, не хочется ничего лишнего.




© OSzone.net 2001-2012