Есть ли способ узнать время с помощью команды Windows? Если нет, можно ли изменить вывод команд date
и time
?
Например, date
в Windows дает дату с / и т. Д. получить вывод, в котором нет специальных символов, таких как /:
Чтобы получить время в формате «ггггммдд», попробуйте следующее:
for /F "tokens=2-4 delims=/ " %i in ('date /t') do echo %k%i%j
Подробнее:
из командной строки попробуйте это
for /f "tokens=2,3,4 delims=/ " %f in ('date /t') do @echo %h%g%f
не забудьте удвоить% символов, если в пакетном файле
@echo off
setlocal
for /f "tokens=2,3,4 delims=/ " %%f in ('date /t') do set d=%%h%%g%%f
for /f "tokens=1,2 delims=: " %%f in ('time /t') do set t=%%f%%g
echo datetime is : %d%%t: =0%
endlocal
я получил следующий результат:
c:\development>xx.bat
datetime is : 201008111108
[Отредактировано в соответствии с комментарием Курта Пфайфла о пространствах во времени]
Нет надежного способа получить дату в пакетных файлах без использования внешних инструментов или других языков, таких как VBScript.
Из VBScript вы можете получить доступ к текущей дате и времени с помощью функций Дата
и Время
. FormatDateTime
предоставит вам не зависящий от языка и региональных параметров формат даты / времени, который затем можно будет проанализировать.
Вы можете получить результат из VBScript, используя WScript.Echo
внутри скрипта и вызывая его так из пакета:
for /f "delims=" %%x in ('cscript /nologo foo.vbs') do set result=%%x
Затем переменная % result%
содержит все, что VBScript имел в качестве вывода в своей первой строке.