09.08.2007 09:51
OlegON
 
Цитата:
Sullen Полностью согласен...
Олег, чем тебе VBScript не глянется? *49
Картинку правильно подобрал :) я чисто из спортивного интереса хотел средствами бат-файла, задачу-то я решил давно :)
17.05.2013 19:03
Tushkanchik
 
так че батником никак ?
17.05.2013 19:41
bayan
 
Цитата:
@echo off
chcp 1251
call :FromNow -1
echo вчера было %ddmmyyyy%
:FromNow
SetLocal
Set yyyy=%DATE:~-4%& set /a mm=100%DATE:~3,2%%%100& set /a dd=100%DATE:~,2%%%100
Set /A JD=%~1+dd-32075+1461*(yyyy+4800+(mm-14)/12)/4+367*(mm-2-(mm-14)/12* 12)/12-3*((yyyy+4900+(mm-14)/12)/100)/4
Set /A L=JD+68569,N=4*L/146097,L=L-(146097*N+3)/4,I=4000*(L+1)/1461001
Set /A L=L-1461*I/4+31,J=80*L/2447,K=L-2447*J/80,L=J/11
Set /A J=J+2-12*L,I=100*(N-49)+I+L
Set /A yyyy=I,mm=100+J,dd=100+K
EndLocal& Set ddmmyyyy=%dd:~-2%.%mm:~-2%.%yyyy%
Exit /B
Но первого числа месяца работать не будет :(
17.05.2013 19:48
OlegON
 
я там выше писал, если мускул или оракл под рукой есть - можно оттуда дернуть в нужном формате... в Линуксе без проблем, в винде - не знаю :( Полистал powershell-доки, кроме формата так ничего и нет...
17.05.2013 20:38
Tushkanchik
 
Решил что так короче будет хоть и не совсем cmd :))

ECHO wscript.echo date-1>tmp.vbs
FOR /F %%A IN ('cscript tmp.vbs //Nologo') DO SET "YESTERDAY=%%A"
ECHO %YESTERDAY%&DEL tmp.vbs
18.05.2013 01:16
KirillHome
 
Старый bat-ник, работает для формата даты ДД (любой разделитель) ММ (любой разделитель) ГГГГ, учитывает високосные года
Код:
@echo off
for /f "skip=2 tokens=2*" %%i in ('reg QUERY "HKCU\Control Panel\International" /v sDate') do set sdate=%%j
for /f "delims=%sdate% tokens=1,2,3" %%i in ("%DATE%") do call :getpackage %%i %%j %%k
 
rem :: проверочка 
rem echo %year%
rem echo %month%
rem echo %day%
echo %package%

rem :: тут можно поместить необходимые нам команды 
 
goto :EOF 
 
:getpackage 
set day=%1
set month=%2
set /a year=%3
set lastdays="31 28 31 30 31 30 31 31 30 31 30 31"
if %day% leq 9 set /a day=%day:~-1%
if %month% leq 9 set /a month=%month:~-1%
set /a day-=1
if "%day%"=="0" set /a month-=1
if "%month%"=="0" set /a month=12,year-=1
set /a isleap="(year%%4)&((year%%100)|(year%%400))"
if "%isleap%"=="0" set lastdays=%lastdays:28=29%
if "%day%"=="0" for /f "tokens=%month%" %%i in (%lastdays%) do set day=%%i
if %day% leq 9 set day=0%day%
if %month% leq 9 set month=0%month%
set package=%year%-%month%-%day%
goto :EOF
Часовой пояс GMT +3, время: 21:52.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.