Снова подниму вопрос по получению даты в нужном формате.
В шапке есть ссылка на совет
igor_andreev:
http://forum.ru-board.com/topic.cgi?forum=5&topic=25393&start=347&limit=1 но мне кажется, что данный способ хоть и весьма остроумен и изобретателен, но всё ж уж больно неизящен. Больше понравился метод, предложенный
Maqentaer на 67-й странице этой темы, с использованием wmic:
for /f "skip=1" %%i in ('wmic os get LocalDateTime') do set datetime=%%i
и т. д., но у меня на Win 2W3 он отказался работать. Я стал выяснять, запустил из консоли (предварительно убрав один знак процента перед переменной), увидел сделующий ответ системы:
set datetime=20091112092002.412000+300
set datetime=
Т. е. переменной присваивается нужное значение, но откуда-то берётся вторая строка, которая уничтожает переменную. Кстати, проверил в Win 7, там конструкция вообще отказалась наотрез работать.
Попытался решить своим методом (кстати, может кому пригодится):
:Сохранить текущий формат даты
for /f "skip=1 tokens=3" %%A in ('reg query "HKCU\Control Panel\International" /v sShortDate') do set CurrentDateFormat=%%A
:Установить свой формат даты
reg add "HKCU\Control Panel\International" /f /v sShortDate /t REG_SZ /d "свой формат"
...
:Получить дату в нужном формате
DATE /T > (или >>)...
:или
for /f %%A in ('DATE /T') do set LocalDate=%%A
...
:Восстановить преждний формат даты
reg add "HKCU\Control Panel\International" /f /v sShortDate /t REG_SZ /d "%CurrentDateFormat%"
Когда используется в контексте пользователя, то всё OK, никаких проблем. Но мне нужно в запланированном задании, которое исполняется (по ряду причин) в контексте локальной системы. И под системой механизм не работает. Я в виде эксперимента запустил под системой (посредством AT) консоль и выяснил, что производимые изменения в реестре на запущенную копию консоли не влияют (именно, когда работа идёт под локальной системой), вот если из неё запустить вторую копию, то там эти изменения проявятся. Но заморачиваться с запуском второго пакетника, передачей туда-обратно параметров через файлы уж очень не хочется (не изящно

).
Подскажите, почему у меня не работает метод
Maqentaer получения даты посредством wmic? Или может кто ещё какой способ предложит?