Getting date and time in desired format in DOS/Windows cmd prompt

Written by Flying-V'39.

พอดีต้องสร้าง windows bacth file เอาวันที่และเวลามาต่อกันเป็นชื่อไฟล์ โดยเรียกตัวแปรของ windows แบบนี้

C:\>echo %date%
Sat 09/10/2011

C:\>echo %time%
15:24:15.16
แต่ว่าค่าที่ได้มันมีช่องว่างมาด้วย เอาไปใช้ไม่ได้ เลยหาฟังก์ชั่นที่ฝรั่งมันทำไว้แล้วบนอินเทอร์เน็ตดูปรากฎว่ามี เลยขอเอามาใช้ซะเลย


SETLOCAL
for /f "tokens=1-3 delims=1234567890 " %%a in ("%time%") do set "delims=%%a%%b%%c"
for /f "tokens=1-4 delims=%delims%" %%G in ("%time%") do (
set _hh=%%G
set _min=%%H
set _ss=%%I
set _ms=%%J
)
set _hh=%_hh: =%
if 1%_hh% LSS 20 set _hh=0%_hh%
ENDLOCAL&set _time=%_hh%%_min%%_ss%%_ms%

SETLOCAL
for /f "tokens=1-4 delims=/-. " %%G in ('date /t') do (call :s_fixdate %%G %%H %%I %%J)
goto :s_end  
:s_fixdate
if "%1:~0,1%" GTR "9" shift
for /f "skip=1 tokens=2-4 delims=(-)" %%G in ('echo.^|date') do (
set %%G=%1&set %%H=%2&set %%I=%3)
goto :eof
:s_end
ENDLOCAL&set _date=%yy%%mm%%dd%

blog comments powered by Disqus

Crazypanda.net