1 (изменено: JSman, 2015-05-10 09:47:57)

Тема: CMD/BAT: Команда TIME и время до 10:00

Обнаружил подводный камень, ранее с таким не сталкивался - батник стал косячным после создания, хотя вечером исправно работал. Выяснял причину. Причина в том, что время до 10 утра командой TIME пишется с пробелом (!), а не с НУЛЕМ, как я предполагал изначально, поэтому имя лога (содержащее переменную времени) кривое.
Если у Вас было такое - расскажите как обойти. Пока у меня возникли мысли с помощью IF сравнивать текущее время с эталоном в 10 утра, .

Вот пример батника:

@echo off
cls
set a=\\192.168.1.10\arhiv2\
set b=d:\back_p\arhiv2\
set c=d:\back_l\
set dt=%date:~6,4%.%date:~3,2%.%date:~0,2%_%time:~0,2%.%time:~3,2%.%time:~6,2%
echo %dt%
set rt=.log
robocopy %a% %b% *.* /MIR /log:%c%%dt%%rt% /bytes
:EXIT
Любители построили Ковчег, а профессионалы - Титаник.

2

Re: CMD/BAT: Команда TIME и время до 10:00


echo:%TIME: =0%
( 2 * b ) || ! ( 2 * b )

3 (изменено: stir, 2015-04-20 13:32:04)

Re: CMD/BAT: Команда TIME и время до 10:00

Большое спасибо за мысли!

Теперь это выглядит так:

@echo off
cls
set a=\\192.168.1.10\arhiv2\
set b=d:\back_p\arhiv2\
set c=d:\back_l\
set da=%date:~6,4%.%date:~3,2%.%date:~0,2%
set ti=%time:~0,2%.%time:~3,2%.%time:~6,2%
set ti=%ti: =0%
set dt=%da%_%ti%
set rt=.log
robocopy %a% %b% *.* /MIR /log:%c%%dt%%rt% /bytes
:EXIT

Любители построили Ковчег, а профессионалы - Титаник.