BVV63
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Снова подниму вопрос по получению даты в нужном формате. В шапке есть ссылка на совет 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? Или может кто ещё какой способ предложит? | Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 08:05 12-11-2009 | Исправлено: BVV63, 08:10 12-11-2009 |
|