Split %date% in a batch file regardless of Regional Settings

Four years have passed, but this question doesn’t get old, and I think now there’s a slightly better answer than using wmic (on win7 onwards).

for /F "tokens=1,2,3 delims=_" %%i in ('PowerShell -Command "& {Get-Date -format "MM_dd_yyyy"}"') do (
    set MONTH=%%i
    set DAY=%%j
    set YEAR=%%k
)
echo %MONTH% %DAY% %YEAR%

With powershell Get-Date you can fine-tune the format you want (short,long, numbers,names,etc..). In this example “MM_dd_yyyy” will get you a numeric date with leading zeros in case of single digit months or days

Leave a Comment