BVV63
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору res2001 Цитата: команда call два раза разъименовывает переменные. | Всё же так и не понял, как Call использовать для разъименования. Можно пример? Попробовал переменную вдвойне разъименовать дважды окружив её знаками восклицания . Увы, безрезультатно... Добавлено: mugil_cephalus Занятный батник, но я не понял, какой смысл из него должен извлечь. Добавлено: ur5tdk Ну, к примеру, можно использовать системную переменную "Date": If %Date% == dd.MM.yy ( ... ) где dd.MM.yy - нужная дата. Недостаток: зависит от формата "КОРОТКОЙ" даты на компе (вернее, у текущего юзера), где исполняется. Можно усложнить, устранив этот недостаток (не помню, кто у нас на форуме впервые для этого посоветовал использовать WMIC): Код: For /F "Skip=1 Tokens=* UseBackQ" %%A In ( `%SystemRoot%\System32\WBEM\WMIC.Exe /Node:LocalHost OS Get LocalDateTime` ) Do ( Set LocalDateTime=%%A GoTo :0 ) :0 Set CurrentDate=%LocalDateTime:~2,2%.%LocalDateTime:~4,2%.%LocalDateTime:~6,2% If CurrentDate == yy.MM.dd ( ... ) | Обратите внимание, что в последнем случае формат даты "yy.MM.dd". Конечно, при желании можно год-месяц-день переставить местами (а также использовать "длинный" год yyyy). Недостаток: работает начиная с XP (в ней изначально появилась команда WMIC). Добавлено: ur5tdk Да, вспомнил, недостаток первого примера можно устранить путём правки реестра. При помощи Reg.Exe сохранить формат короткой даты текущего пользователя в переменной, заменить его фиксированным, произвести необходимые действия, затем формат даты восстановить. Я раньше так и делал, но здесь тоже есть недостаток: не работает (вернее, можно заставить работать, но через задницу) в контексте локальной системы. | Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 06:25 29-06-2010 | Исправлено: BVV63, 07:54 29-06-2010 |
|