|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Переменная Дня недели |
|
|
CMD/BAT - [решено] Переменная Дня недели
|
Пользователь Сообщения: 112 |
Профиль | Отправить PM | Цитировать Всем доброе время суток!
Подскажите, пожалуйста, какую команду нужно написать, чтобы создать папку с именем текущего дня недели? Заранее благодарен! |
|
Отправлено: 17:27, 10-03-2009 |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 07:10, 11-03-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать ratibor79, нашел у себя в "залежах":
@echo off :: format: dd.mm.yyyy echo %date% set /a y=%date:~6,4%&set /a m=%date:~3,2%&set /a d=%date:~0,2% set /a i=(%y%-1901)*365 + (%y%-1901)/4 + %d% + (!(%y% %% 4))*(!((%m%-3)^&16)) echo %i% set /a i=(%i%+(%m%-1)*30+2*(!((%m%-7)^&16))-1+((65611044^>^>(2*%m%))^&3))%%7+1 echo %i% REM (igor_andreev) for /f "tokens=%i% delims=/" %%a in (' echo/Понедельник/Вторник/Среда/Четверг/Пятница/Суббота/Воскресенье') do set "w=%%a" for /f "tokens=%date:~3,2% delims=/" %%a in (' ECHO/Января/Февраля/Марта/Апреля/Мая/Июня/Июля/Августа/Сентября/Октября/Ноября/Декабря/') do set "mmm=%%a" echo %w% %d% %mmm% %y% pause |
Отправлено: 13:50, 11-03-2009 | #3 |
Пользователь Сообщения: 112
|
Профиль | Отправить PM | Цитировать gora, спасибо. Как раз то что доктор прописал.
|
Отправлено: 16:27, 11-03-2009 | #4 |
Пользователь Сообщения: 112
|
Профиль | Отправить PM | Цитировать 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 февраля - это был понедельник |
|
Отправлено: 17:18, 11-03-2009 | #5 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата ratibor79:
@echo off :: format: dd.mm.yyyy :: кодировка кирилица DOS (866) echo %date% set /a y=%date:~6,4%&set /a m=1%date:~3,2%-100&set /a d=1%date:~0,2%-100 set /a i=(%y%-1901)*365 + (%y%-1901)/4 + %d% + (!(%y% %% 4))*(!((%m%-3)^&16)) set /a i=(%i%+(%m%-1)*30+2*(!((%m%-7)^&16))-1+((65611044^>^>(2*%m%))^&3))%%7+1 :: (igor_andreev) for /f "tokens=%i% delims=/" %%a in (' echo/Понедельник/Вторник/Среда/Четверг/Пятница/Суббота/Воскресенье') do set "w=%%a" for /f "tokens=%m% delims=/" %%a in (' ECHO/Января/Февраля/Марта/Апреля/Мая/Июня/Июля/Августа/Сентября/Октября/Ноября/Декабря/') do set "mmm=%%a" echo %w% %d% %mmm% %y% pause>nul |
|
Отправлено: 18:25, 11-03-2009 | #6 |
Пользователь Сообщения: 112
|
Профиль | Отправить PM | Цитировать gora
Вот спасибочки работает |
Отправлено: 19:23, 11-03-2009 | #7 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Можно решить задачку элегантней, но для этого придется предварительно скомпилировать WMIC псевдоним для WMI класса Win32_LocalTime, после этого можно будет легко получать любые параметры текущей даты, включая номер квартала, номер недели в месяце и т.д. MOF-файл (файл в WIN-кодировке):
#pragma namespace("\\\\.\\ROOT\\Cli") instance of MSFT_CliAlias { Connection = instance of MSFT_CliConnection { Locale = "ms_409"; NameSpace = "ROOT\\CIMV2"; Server = "."; }; Description = "Местное время"; Formats = { instance of MSFT_CliFormat { Format = "TABLE"; Name = "BRIEF"; Properties = { instance of MSFT_CliProperty { Derivation = "DayOfWeek"; Description = "День недели"; Name = "DayOfWeek"; }, instance of MSFT_CliProperty { Derivation = "Year"; Description = "Год"; Name = "Year"; }, instance of MSFT_CliProperty { Derivation = "Month"; Description = "Месяц"; Name = "Month"; }, instance of MSFT_CliProperty { Derivation = "Day"; Description = "Число"; Name = "Day"; }, instance of MSFT_CliProperty { Derivation = "Hour"; Description = "Часы"; Name = "Hour"; }, instance of MSFT_CliProperty { Derivation = "Minute"; Description = "Минуты"; Name = "Minute"; }, instance of MSFT_CliProperty { Derivation = "Second"; Description = "Секунды"; Name = "Second"; }}; }, instance of MSFT_CliFormat { Format = "VALUE"; Name = "FULL"; Properties = { instance of MSFT_CliProperty { Derivation = "DayOfWeek"; Description = "День недели"; Name = "DayOfWeek"; }, instance of MSFT_CliProperty { Derivation = "WeekInMonth"; Description = "Неделя месяца"; Name = "WeekInMonth"; }, instance of MSFT_CliProperty { Derivation = "Year"; Description = "Год"; Name = "Year"; }, instance of MSFT_CliProperty { Derivation = "Quarter"; Description = "Квартал"; Name = "Quarter"; }, instance of MSFT_CliProperty { Derivation = "Month"; Description = "Месяц"; Name = "Month"; }, instance of MSFT_CliProperty { Derivation = "Day"; Description = "Число"; Name = "Day"; }, instance of MSFT_CliProperty { Derivation = "Hour"; Description = "Часы"; Name = "Hour"; }, instance of MSFT_CliProperty { Derivation = "Minute"; Description = "Минуты"; Name = "Minute"; }, instance of MSFT_CliProperty { Derivation = "Second"; Description = "Секунды"; Name = "Second"; }, instance of MSFT_CliProperty { Derivation = "MilliSeconds"; Description = "Миллисекунды"; Name = "MilliSeconds"; }}; }, instance of MSFT_CliFormat { Format = "Table"; Name = "SYSTEM"; Properties = { instance of MSFT_CliProperty { Derivation = "__PATH"; Name = "__PATH"; }, instance of MSFT_CliProperty { Derivation = "__NAMESPACE"; Name = "__NAMESPACE"; }, instance of MSFT_CliProperty { Derivation = "__SERVER"; Name = "__SERVER"; }, instance of MSFT_CliProperty { Derivation = "__PROPERTY_COUNT"; Name = "__PROPERTY_COUNT"; }, instance of MSFT_CliProperty { Derivation = "__RELPATH"; Name = "__RELPATH"; }, instance of MSFT_CliProperty { Derivation = "__DYNASTY"; Name = "__DYNASTY"; }, instance of MSFT_CliProperty { Derivation = "__SUPERCLASS"; Name = "__SUPERCLASS"; }, instance of MSFT_CliProperty { Derivation = "__GENUS"; Name = "__GENUS"; }, instance of MSFT_CliProperty { Derivation = "__CLASS"; Name = "__CLASS"; }}; }}; FriendlyName = "LocalTime"; PWhere = "Where Name='#'"; Target = "Select * From Win32_LocalTime"; }; пример батника, использующего созданный псевдоним (DOS-кодировка): |
Отправлено: 05:07, 13-03-2009 | #8 |
Сообщения: 53441
|
Профиль | Отправить PM | Цитировать |
Отправлено: 14:25, 13-03-2009 | #9 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Petya V4sechkin:
|
|
Отправлено: 15:37, 13-03-2009 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] как сделать доступ к папкам по дням недели? | Steven21 | Microsoft Windows NT/2000/2003 | 15 | 10-12-2009 17:11 | |
Глобальная переменная | 11943499 | AutoIt | 9 | 23-07-2009 20:58 | |
[решено] Выход из функции, если переменная не задана | D_Master | AutoIt | 2 | 19-02-2009 15:05 | |
Интерфейс - [решено] Дни недели и месяца на украинском!Как убрать? | Voodoo Child | Microsoft Windows Vista | 3 | 07-04-2008 11:06 | |
День недели | Hard | Программирование и базы данных | 5 | 23-09-2002 07:27 |
|