![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Узнать даты понедельника и пятницы текущей недели |
|
CMD/BAT - Узнать даты понедельника и пятницы текущей недели
|
![]() Пользователь Сообщения: 90 |
Задача стоит такая: нужно создать папку с именем дат текущей рабочей недели (пн-пт), например, 2015.02.23-2015.02.27. Вне зависимости от того, когда был запущен батник (в пн или вс).
Получился у меня такой код: @Echo Off SetLocal EnableExtensions EnableDelayedExpansion For /F "Tokens=1* Delims==" %%i In ('WMIC Path Win32_LocalTime Get /Value ^| Find "="') Do ( Set V=%%j Set $%%i=!V:~0,-1! ) If "%$DayOfWeek%"=="0" Set $DayOfWeek=7 set /a DAY=$DayOfWeek-1 call :DateToSecs %date:~-4% %date:~-7,2% %date:~-10,2% secs set /A adj=DAY*3600*24 set /A dsecs=secs-adj call :SecsToDate %dsecs% yy mm dd <nul set /p strTemp=%yy%.%mm%.%dd%->"%~dp0DATE.txt" set /A dsecs=secs-adj+4*3600*24 call :SecsToDate %dsecs% yy mm dd <nul set /p strTemp=%yy%.%mm%.%dd%>>"%~dp0DATE.txt" for /f "UsebackQ" %%A IN ("%~dp0DATE.txt") do (set ThisWeek=%%~A) echo %ThisWeek% if not exist "%~dp0%ThisWeek%\" md "%~dp0%ThisWeek%\" DEL /f /q "%~dp0DATE.txt" Exit /b 0 :DateToSecs %yy% %mm% %dd% secs SetLocal EnableExtensions set yy=%1&set mm=%2&set dd=%3 if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%) set /a dd=100%dd%%%100,mm=100%mm%%%100 set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2 set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633 set /a j=j*86400 endlocal&set %4=%j%&goto :EOF goto :EOF :SecsToDate %secs% yy mm dd SetLocal EnableExtensions set /a i=%1,ss=i%%60,i/=60,nn=i%%60,i/=60,hh=i%%24,dd=i/24,i/=24 set /a a=i+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5 set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10 (if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%) endlocal&set %4=%dd%&set %3=%mm%&set %2=%yy%&goto :EOF ![]() |
|
Отправлено: 16:45, 28-02-2015 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Цитата V!RTuE:
Да уж, написать такой код "чистыми" средствами языка пакетных файлов у меня не хватило бы духа ![]() V!RTuE, попробуйте так: @echo off for /f "tokens=1-6 delims=.-/" %%i in (' mshta "vbscript:CreateObject("Scripting.FileSystemObject").GetStandardStream(1).Write(DateAdd("D",1-WeekDay(Date,2),Date)&"."&DateAdd("D",5-WeekDay(Date,2),Date))&Close()" ') do 2>nul md "%~dp0%%k.%%j.%%i-%%n.%%m.%%l" exit/b 0 . |
|
Отправлено: 22:31, 28-02-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Добавление текущей даты в начало имени файла | Orlov_Pyotr | Скриптовые языки администрирования Windows | 6 | 27-02-2013 13:30 | |
CMD/BAT - Сранение даты из файла с текущей датой | InVariable | Скриптовые языки администрирования Windows | 0 | 07-02-2012 11:53 | |
SysTabControl32. как узнать текст текущей вкладки? | Romanka | AutoIt | 1 | 04-07-2011 18:40 | |
VBS/WSH/JS - [решено] Удаление файлов созданных ранее текущей даты на неделю | KillHunter | Скриптовые языки администрирования Windows | 5 | 06-03-2009 12:23 | |
День недели | Hard | Программирование и базы данных | 5 | 23-09-2002 07:27 |
|