но для этого придется предварительно скомпилировать WMIC псевдоним
А зачем компилировать? можно ведь сразу:
Код:
Код: Выделить всё
WMIC Path Win32_LocalTime Get DayOfWeekКод: Выделить всё
WMIC Path Win32_LocalTime Get DayOfWeekКод: Выделить всё
@Echo Off
Call :GetVar Day
Call :GetVar Month
For /F "Tokens=%$Month%" %%i In ("Январь Февраль Март Апрель Май Июнь Июль Август Сентябрь Октябрь Ноябрь Декабрь") Do Set $MonthName=%%i
Call :GetVar Year
Call :GetVar DayOfWeek
For /F "Tokens=%$DayOfWeek%" %%i In ("Понедельник Вторник Среда Четверг Пятница Суббота Воскресенье") Do Set $DayOfWeekName=%%i
Call :GetVar WeekInMonth
Call :GetVar Hour
Call :GetVar Minute
Call :GetVar Second
Echo --------------------------------------
Echo День : %$Day%
Echo Месяц : %$MonthName% (%$Month%-й месяц года)
Echo Год : %$Year%
Echo --------------------------------------
Echo День недели : %$DayOfWeekName% (%$DayOfWeek%-й день недели)
Echo Неделя месяца: %$WeekInMonth%
Echo --------------------------------------
Echo Часов : %$Hour%
Echo Минут : %$Minute%
Echo Секунд : %$Second%
Echo --------------------------------------
Pause>nul
Exit
:GetVar
For /F "Skip=1" %%i In ('WMIC Path Win32_LocalTime Get %1') Do Set $%1=%%i
GoTo :EOF

Код: Выделить всё
@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
For /F "Tokens=%$Month%" %%i In ("Январь Февраль Март Апрель Май Июнь Июль Август Сентябрь Октябрь Ноябрь Декабрь") Do Set $MonthName=%%i
For /F "Tokens=%$DayOfWeek%" %%i In ("Понедельник Вторник Среда Четверг Пятница Суббота Воскресенье") Do Set $DayOfWeekName=%%i
Echo --------------------------------------
Echo День : %$Day%
Echo Месяц : %$MonthName% (%$Month%-й месяц года)
Echo Год : %$Year%
Echo --------------------------------------
Echo День недели : %$DayOfWeekName% (%$DayOfWeek%-й день недели)
Echo Квартал : %$Quarter%
Echo --------------------------------------
Echo Часов : %$Hour%
Echo Минут : %$Minute%
Echo Секунд : %$Second%
Echo --------------------------------------
Pause>nul
Exit

Код: Выделить всё
@Echo Off
For /F "Tokens=1,2 Skip=1" %%i In ('WMIC Path Win32_LocalTime Get Month^,Year') Do If Not "%%j"=="" Set $Month=%%i&Set $Year=%%j
For /F "Tokens=%$Month% Delims=," %%i In ("Январь,Февраль,Март,Апрель,Май,Июнь,Июль,Август,Сентябрь,Октябрь,Ноябрь,Декабрь") Do Set $MonthName=%%i
Set /A $Season = ($Month-$Month/12*12)/3+1
Set /A $MonthInSeason = $Month-$Month/12*12-(%$Season%-1)*3+1
For /F "Tokens=%$Season% Delims=," %%i In ("Зимы,Весны,Лета,Осени") Do Set $SeasonGenitive=%%i
Echo На дворе %$MonthName% - %$MonthInSeason%-й месяц %$SeasonGenitive%Код: Выделить всё
@echo off
echo.>"%TEMP%\~.ddf"
makecab /D RptFileName="%TEMP%\~.rpt" /D InfFileName="%TEMP%\~.inf" -f "%TEMP%\~.ddf">nul
for /f "tokens=3" %%a in ('type "%TEMP%\~.rpt"') do if not defined weekday set "weekday=%%a"
echo %weekday%
del /q "%TEMP%\~.*"
pause
igor_andreev (c)Код: Выделить всё
@echo off
set yy=2010
set mm=10
set dd=3
call :DateToWeek %yy% %mm% %dd% yn cw dw
for /f "tokens=%dw%" %%i in ("понедельник вторник среда четверг пятница суббота воскресенье") Do Set DayOfWeek=%%i
echo %DayOfWeek%& pause>nul
exit /b
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:DateToWeek %yy% %mm% %dd% yn cw dw
::
:: By: Ritchie Lawrence, Updated 2002-11-20. Version 1.1
::
:: Func: Returns an ISO 8601 Week date from a calendar date.
:: For NT4/2000/XP/2003.
::
:: Args: %1 year component to be converted, 2 or 4 digits (by val)
:: %2 month component to be converted, leading zero ok (by val)
:: %3 day of month to be converted, leading zero ok (by val)
:: %4 var to receive year, 4 digits (by ref)
:: %5 var to receive calendar week, 2 digits, 01 to 53 (by ref)
:: %6 var to receive day of week, 1 digit, 1 to 7 (by ref)
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
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,Jd=153*m+2
set /a Jd=Jd/5+dd+y*365+y/4-y/100+y/400-32045
set /a y=yy+4798,Jp=y*365+y/4-y/100+y/400-31738,t=Jp+3,Jp=t-t%%7
set /a y=yy+4799,Jt=y*365+y/4-y/100+y/400-31738,t=Jt+3,Jt=t-t%%7
set /a y=yy+4800,Jn=y*365+y/4-y/100+y/400-31738,t=Jn+3,Jn=t-t%%7
set /a Jr=%Jp%,yn=yy-1,yn+=Jd/Jt,yn+=Jd/Jn
if %Jd% GEQ %Jn% (set /a Jr=%Jn%) else (if %Jd% GEQ %Jt% set /a Jr=%Jt%)
set /a diff=Jd-Jr,cw=diff/7+1,wd=diff%%7,wd+=1
if %cw% LSS 10 set cw=0%cw%
endlocal&set %4=%yn%&set %5=%cw%&set %6=%wd%&goto :EOF
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::Код: Выделить всё
@echo off
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
for /f "tokens=%i% delims=/" %%a in ('
echo/Monday/Tuesday/Wednesday/Thursday/Friday/Saturday/Sunday') do set "w=%%a"
for /f "tokens=%m% delims=/" %%a in ('
ECHO/January/February/March/April/May/June/July/August/September/October/November/December') do set "mmm=%%a"
C:\WINDOWS\system32\ntbackup.exe backup \\Fileserver\test /v:yes /m normal /j "FULL backup test - every %w%..." /l:s /f "\\Server\backup$\test-%w%.bkf"
"C:\Program Files\7-Zip\7z.exe" a \\Server\Backup$\test-%w%.7z -test -mhe -ssw \\Server\backup$\test-%w%.bkf
del \\Server\backup$\test-%w%.bkf