Форматиране на датата и времето в командния промпт на 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
Няма коментари
Обратно към списъка със статиите
Тази страница последно е променяна на 2025-04-30 16:00:55