SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
for /f "tokens=2-6 delims=:/ " %%a in ("!date! !time!") do echo %%c-%%a-%%b %%d %%e
ENDLOCAL
However, your script depends on Windows locale; for instance, in my locale should be:
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
for /f "tokens=1-5 delims=:. " %%a in ("!date! !time!") do echo %%c-%%b-%%a %%d %%e
ENDLOCAL
Consider locale independent solution based on next code snippet:
for /F %%g in ('
wmic OS get LocalDateTime /value^|findstr "="
') do for /F %%G in ("%%g") do echo set "_%%G"
Returns CIM_DATETIME format:
set "_LocalDateTime=20150629093247.246000+120"
:: yyyymmddHHMMSS.mmmmmmsUUU
Replace ... do echo set "_%%G" with ... do set "_%%G" no sooner than debugged. Then next code snippet displays 2015-06-29 09 59:
SETLOCAL enableextensions enabledelayedexpansion
for /F %%g in ('
wmic OS get LocalDateTime /value^|findstr "="
') do for /F %%G in ("%%g") do set "_%%G"
echo !_LocalDateTime:~0,4!-!_LocalDateTime:~4,2!-!_LocalDateTime:~6,2! !_LocalDateTime:~8,2! !_LocalDateTime:~10,2!