1 (изменено: JSmаn, 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

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

4

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

CMD/BAT: работа с датой и временем в командной строке:

Rumata пишет:

ночное и утреннее время (промежуток между 00:00 и 10:00) в зависимости от региональных настроек может содержать ведущий пробел вместо нуля (" 9:59" вместо "09:59").

Несмотря на HH в

REGEDIT4
[HKEY_CURRENT_USER\Control Panel\International]
"sTimeFormat"="HH:mm:ss"

— пробел, а не ноль. От каких ещё настроек это может зависеть? Кому нибудь удавалось получить ноль?

alexii пишет:

У меня, например, время, согласно заданным региональным настройкам всегда отображается с ведущим нулём.

— Это правда?