Форматиране на датата и времето в командния промпт на Windows/DOS

 
Ако сте запознати с командата date на Linux, и най-вече с богатите възможности за различно форматиране на датата и часа, ще сте неприятно изненадани от липсата дори на зачатъци на подобна функционалност в еквивалента на DOS/Windows. Все пак има начин това да се постигне. Например за да получим датата във формат YYMMDD и часа във формат HHMMSSmm като стойност на променливите _date и _time, използваме следния фрагмент:
 
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%

Източник: http://ss64.com/nt/syntax-getdate.html и http://ss64.com/nt/syntax-gettime.html

Няма коментари

Обратно към списъка със статиите

Тази страница последно е променяна на 2024-04-29 01:08:24