|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Переменная Дня недели |
|
|||||
|
|
CMD/BAT - [решено] Переменная Дня недели
|
|
Пользователь Сообщения: 112 |
Всем доброе время суток!
Подскажите, пожалуйста, какую команду нужно написать, чтобы создать папку с именем текущего дня недели? Заранее благодарен! |
|
|
Отправлено: 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 |
|
Сообщения: 53589
|
Профиль | Отправить 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 | |
|