IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Операционные системы M$ (http://www.imho.ws/forumdisplay.php?f=2)
-   -   Дата и время в командной строке (http://www.imho.ws/showthread.php?t=86857)

Naked 02.06.2005 18:03

Дата и время в командной строке
 
Такой вопрос, если дата выводится в формате: День недели Дата. Например Thu 02/06/2005. можно ли как-нибудь убрать день недели при выводе из bat'файла. %date% выводит вместе с днем недели... :(

crawler 02.06.2005 18:55

echo %date:~4% ;)

Naked 02.06.2005 19:11

А можно например поставить условие: если %user%=какому-то определённому, то делать какие-то действия :confused:

Borland 02.06.2005 20:41

Цитата:

The_naked:
если %user%=какому-то определённому, то делать какие-то действия
Код:

IF "%UserName%"=="VasyaPupkin" CALL DoSomething.bat
Цитата:

The_naked:Там вроде не =, а ==
Поправил... ;)

Naked 02.06.2005 20:58

Цитата:

Сообщение от Borland
Код:

IF %UserName%=VasyaPupkin CALL DoSomething.bat

Там вроде не =, а ==, а так thanks

Naked 03.06.2005 20:08

А можно как-нибудь убрать лишний пробел перед временем? Например, когда количество часов 2 знака (10-23), то в выходном файле один пробел, а когда 1 знак (0-9) в выходном файле 2 пробела, видимо один пробел из-за того, что должен писаться ноль (00-09), но он не пишется, как можно избавиться от этого пробела?

crawler 09.06.2005 12:34

Ну немного напрягись сам.
if "%time:~0,1%"==" " echo %time:~1%

Borland 15.01.2014 20:11

Цитата:

Сообщение от crawler (Сообщение 889425)
if "%time:~0,1%"==" " echo %time:~1%

Решил поделиться своим решением. :cool:

Как-то для целей резервного копирования мне понадобились дата и время в имени файла в формате "YYYYMMDD_HHMMSS", причём без пробелов. Для решения задачи была применена следующая конструкция:
Код:

if "%TIME:~0,1%"==" " (
set "DTSTRING=%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%_0%TIME:~1,1%%TIME:~3,2%%TIME:~6,2%"
) else (
set "DTSTRING=%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%_%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%"
)

которая всегда выдаёт15-значную переменную (при стандартных для русского языка шаблонах для даты "dd.MM.yyyy" и для времени "hh:mm:ss в региональных настройках системы), соответствующую дате и времени на момент запуска пакетного файла.
Слегка громоздко, зато надёжно. :)

Borland 01.09.2019 16:19

Добавим получение даты и времени независимо от системных настроек:
Код:

@echo OFF

call :GETTIMESTAMP TIMESTAMP
echo %TIMESTAMP:~0,4%-%TIMESTAMP:~4,2%-%TIMESTAMP:~6,2% %TIMESTAMP:~8,2%:%TIMESTAMP:~10,2%:%TIMESTAMP:~12,2%
pause
goto :EOF

:GETTIMESTAMP
for /f "usebackq tokens=2 delims==" %%A in (`wmic os get LocalDateTime /value`) do set "%~1=%%A"
goto :EOF

И до кучи - получение даты/времени UTC (т.е. независимых от местного часового пояса)
Код:

@echo OFF
setlocal EnableDelayedExpansion

call :GETUTCTIMESTAMP TIMESTAMP
echo %TIMESTAMP%
pause
goto :EOF

:GETUTCTIMESTAMP
for /f "usebackq tokens=1,2 delims==" %%A in (`wmic path Win32_UTCTime get year^,month^,day^,hour^,minute^,second /value ^| find "="`) do (
    set /a TMPVAL=%%B 
    if !TMPVAL! LSS 10 (
        set UTC_%%A=0%%B
    ) else (
        set UTC_%%A=%%B
    )
)
set %1=%UTC_Year%-%UTC_Month%-%UTC_Day%T%UTC_Hour%:%UTC_Minute%:%UTC_Second%Z
goto :EOF

Данные "таймштампы" пригодятся, в частности, для скриптов, ведущих логи выполнения.


Часовой пояс GMT +4, время: 11:11.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.