1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
:: ------------------------------------------------------------------
:: Batchfile : NewDate.bat
:: Purpose : A routine to parse the current date. Supports formats:
:: MM-DD-YYYY DD-MM-YYYY DD.MM.YYYY DD/MM/YYYY
:: OS : Windows 95+, Windows NT4+
:: Created : Tom Lavedas <lavedas@pressroom.com>, 20000717
:: Adopted : Frank-Peter Schultze <fpschultze@bigfoot.de>, 20000719
:: Revised : Frank-Peter Schultze <fpschultze@bigfoot.de>, 20050918
:: ------------------------------------------------------------------
@echo off
if %1/==:/ goto %2
if NOT %1/==/?/ goto Begin
echo Parses the current date.
echo.
echo [CALL] NewDate
echo.
echo NewDate sets the following variables:
echo.
echo Day of Week : DOW
echo Day : DD
echo Month : MM
echo Year : YYYY
echo.
echo NewDate supports the following date formats:
echo.
echo MM-DD-YYYY DD-MM-YYYY DD.MM.YYYY DD/MM/YYYY
for %%C in (echo. goto:End) do %%C
:Begin --------------------------------------------------------------
echo. | date | FIND "(mm" > NUL
if NOT errorlevel 1 %0 : %OS%Parse MM DD
%0 : %OS%Parse DD MM
:Windows_NTParse ----------------------------------------------------
for /F "tokens=1-4 delims=/.- " %%A in ('date /T') do if %%D!==! (
set %3=%%A&set %4=%%B&set YYYY=%%C
) else (
set DOW=%%A&set %3=%%B&set %4=%%C&set YYYY=%%D)
goto End
:Parse --------------------------------------------------------------
for %%C in (md cd) do %%C @tmp@
echo @prompt set _D=$D$_> ~tmp1.bat
%COMSPEC% /e:2048 /c ~tmp1.bat > ~tmp2.bat
call ~tmp2
echo %_D% | FIND "/" > NUL
if NOT errorlevel 1 goto Slash
lfnfor on > "%_D%.-"
ren "%_D%.-" "??? ?? ?? ????"
for %%F in ("??? ?? ?? ????") do set _D=%%F
lfnfor off
:Slash
echo set DOW=%%%3%%>~tmp1.bat
for %%S in ("%3=%%%4%%" "%4=%%YYYY%%" "YYYY=%%1") do echo set %%S>>~tmp1.bat
for %%S in (%_D%) do call ~tmp1 %%S
echo %_D% | FIND "/" > NUL
if errorlevel 1 goto Cleanup
echo @prompt set %4=$%%%4%%$_set YYYY=$%YYYY%$_ > ~tmp1.bat
%COMSPEC% /e:2048 /c ~tmp1.bat > ~tmp2.bat
call ~tmp2
:Cleanup
for %%C in ("set _D=" cd.. "deltree /y @tmp@ > NUL") do %%C
:End ----------------------------------------------------------------
echo Demo: YYYY=%YYYY% MM=%MM% DD=%DD% DOW=%DOW% |
Partager