Переменная Дня недели
Всем доброе время суток!
Подскажите, пожалуйста, какую команду нужно написать, чтобы создать папку с именем текущего дня недели? Заранее благодарен! |
|
ratibor79, нашел у себя в "залежах":
Код:
@echo off |
gora, спасибо. Как раз то что доктор прописал.
|
gora Вот только что сталкнулся с ошибкой
Обратите пожалуйста внимание на 8 или 9 числа любого месяца C:\TEMP>set /a y=2009 & set /a m=02 & set /a d=09 Неправильное число. Числовые константы должны быть десятичными (17) шестнадцатеричными (0x11),или восьмеричными (021). C:\TEMP>set /a i=(2009-1901)*365 + (2009-1901)/4 + + (!(2009 % 4))*(!((2-3)&16)) C:\TEMP>set /a i=(39447+(2-1)*30+2*(!((2-7)&16))-1+((65611044>>(2*2))&3))%7+1 C:\TEMP>for /F "tokens=6 delims=/" %a in (' echo/Понедельник/Вторник/Среда/Четве рг/Пятница/Суббота/Воскресенье') do set "w=%a" C:\TEMP>set "w=Суббота" C:\TEMP>for /F "tokens=02 delims=/" %a in (' ECHO/Января/Февраля/Марта/Апреля/Ма я/Июня/Июля/Августа/Сентября/Октября/Ноября/Декабря/') do set "mmm=%a" C:\TEMP>set "mmm=Февраля" C:\TEMP>echo Суббота Февраля 2009 Суббота Февраля 2009 9 февраля - это был понедельник |
Цитата:
Код:
@echo off |
gora
Вот спасибочки работает |
Можно решить задачку элегантней, но для этого придется предварительно скомпилировать WMIC псевдоним для WMI класса Win32_LocalTime, после этого можно будет легко получать любые параметры текущей даты, включая номер квартала, номер недели в месяце и т.д. MOF-файл (файл в WIN-кодировке):
Код:
#pragma namespace("\\\\.\\ROOT\\Cli") Код:
WMIC LocalTime Get DayOfWeek >Nul Код:
@Echo Off |
Цитата:
Код:
WMIC Path Win32_LocalTime Get DayOfWeek |
Цитата:
|
решил свести все вместе, c поддержкой серверных ОС (ненужное можно удалить):
Код:
@Echo Off |
amel27, а в чем смысл GoTo? Без них вроде и так будет переходить на следующую строку. Немного причесал, чтобы не "рябило в глазах".
Код:
@Echo Off |
Цитата:
ОС 2003R2_SP2_Ru Скрипт подумал секунд несколько и выдал следующее: Цитата:
в отличие от варианта amel27 Цитата:
|
amel27, gora, я бы сделал так:
Код:
@Echo Off
|
Цитата:
Petya V4sechkin, красиво! :) :up |
Цитата:
Бороться можно разными способами: либо вариант amel27 (присвоить значение и сразу выход из цикла через GoTo), либо опцией /Value (чтобы выводилось в формате свойство=значение), а также каналом через Find (чтобы исключить пустые строки вообще). |
- Без Value можно за раз несколько значений (порядок переменных WMIC ставит свой);
- имя выходной переменной может быть произвольным; - можно обойтись и без GoTo: Код:
@Echo Off Цитата:
|
Из под "Администратора" всё отлично работает, а вот из под "Оператора архива" пишет:
Цитата:
Попробовал другой скрипт (подсмотренный на ixbt): Код:
@echo off А когда запускаю через планировщик .cmd файл от того же пользователя - не работает. |
Цитата:
Цитата:
могу еще предложить чистый CMD метод, с использованием ф-ции :DateToWeek |
Похоже, что проблема была в другом.
Я изначально пошел по неверному пути, когда у меня возникла проблема с запуском задания из планировщика от имени пользователя, входящего в группу "Операторы архива". Проблема была в том, что когда я входил локально от имени этого пользователя и запускал .cmd файл всё нормально работало, а при запуске того же файла через планировщик, ругалось на отсутствие прав. Воспользовался неправильным советом http://forum.ixbt.com/topic.cgi?id=7:35541#11 и скопировал файл cmd.exe в папку с батниками и запускал оттуда, а надо было всего лишь права на запуск для cmd.exe прописать... Вот скрипт, который всё-таки заработал от Оператора архива: Код:
@echo off |
Добрый день!
Подскажите, как получить переменную Неделя года? да и где можно почитать про WMIC Path Win32_LocalTime? |
Цитата:
Код:
get-Date -uformat %W Цитата:
|
Vadikan, спасибо)
|
Время: 01:31. |
Время: 01:31.
© OSzone.net 2001-