In tip 4835, I parsed today's date for any NT-based operating system.
In tip 6837, I returned the 3 character abbreviation for the current month.
I have scripted Today.bat to return today's numeric month, day, and year, the 3 character month abbreviation, and the 2 digit month and day.
The syntax for using Today.bat is:
call today MMn DDn YYn Abrev MM DD
Where:
MMn is a call directed numeric environment variable that will contain today's month. DDn is a call directed numeric environment variable that will contain today's day. YYn is a call directed numeric environment variable that will contain today's 4 digit year. Abrev is a call directed environment variable that will contain today's 3 character month abbreviation. MM is a call directed environment variable that will contain today's 2 digit month. DD is a call directed environment variable that will contain today's 2 digit day.
Example:
If today was January 3, 2005, then call today MMn DDn YYn Abrev MM DD would set:MMn to 1 DDn to 3 YYn to 2005 Abrev to Jan MM to 01 DD to 03Today.bat contains:
@echo off if \{%6\}==\{\} @echo Syntax: Today MMn DDn YYn Abrev MM DD&goto :EOF setlocal set vb="%temp%\today_%RANDOM%.vbs" echo D = Now : MN = MonthName(Month(D), True) >%vb% echo WScript.Echo MN ^& " " ^& Month(D) ^& " " ^& Day(D) ^& " " ^& Year(D) >>%vb% for /f "tokens=1-4" %%a in ('cscript.exe //Nologo %vb%') do ( set abrev=%%a set /a MMn=100%%b%%100 set /a DDn=100%%c%%100 set /a YYn=10000%%d%%10000 ) del /q %vb% if %YYn% LSS 1000 set /a YYn=%YYn% + 2000 set /a MM=%MMn% set /a DD=%DDn% if %MM% LSS 10 set MM=0%MM% if %DD% LSS 10 set DD=0%DD% endlocal&set %1=%MMn%&set %2=%DDn%&set %3=%YYn%&set %4=%abrev%&set %5=%MM%&set %6=%DD%
0 comments
Hide comments