Как получить сегодняшнюю дату в пакетной среде Windows? - PullRequest
5 голосов
/ 11 августа 2011

Я бы хотел получить сегодняшнюю дату в формате ГГГГММДД в ​​пакетной среде Windows, но не знаю, с чего начать и что делать.

Любой код или направление приветствуются.

Ответы [ 6 ]

16 голосов
/ 11 августа 2011

В моей системе, где echo %date% возвращает dd/mm/yyyy:

set now=%date:~6,4%%date:~3,2%%date:~0,2%
echo.%now%

Используется синтаксис: %date:~S,L%, где S - это смещение символа, а L - это длина для чтениязначение, возвращаемое %date%.

2 голосов
/ 11 августа 2011

Вы также можете использовать команду FOR для разделения частей даты:

for /f "tokens=1-3 delims=/" %%a in ("%date%") do set now=%%c%%a%%b

Компоненты даты делятся на / (разделители) и занимают первые три части (токены) в переменной %% a и последовательно (%% b и %% c).

Хотя это кажется более сложным, чем предыдущий метод, он менее подвержен ошибкам при его использовании. Для получения более подробной информации введите: FOR /?

1 голос
/ 12 августа 2011
@echo off
for /f "tokens=*" %%a in ('
  "wmic path Win32_LocalTime get year,month,day /value|findstr ="
  ') do @set %%a
echo %year%%month%%day%
pause
0 голосов
/ 24 апреля 2017
Сценарий

@ raider33 работает, вот еще один способ, который использует PowerShell:

@echo off
for /f %%i in ('PowerShell -Command "Get-Date -uformat '%%Y%%m%%d'"') do (
    set "Today=%%i"
)
echo,%Today%
0 голосов
/ 02 декабря 2016

На моем компьютере с Windows 10 формат% date% отличается от значений, ожидаемых @Alex K. answer, поэтому он не работал для меня. Проведя дополнительные исследования, я выкопал следующий скрипт, который подходит для получения любой даты в формате по вашему выбору. Используйте day=0 на сегодня, day=1 на завтра, day=-1 на вчера и т. Д ...

set day=0
echo >"%temp%\%~n0.vbs" s=DateAdd("d",%day%,now) : d=weekday(s)
echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^& right(100+day(s),2)
for /f %%a in ('cscript /nologo "%temp%\%~n0.vbs"') do set "result=%%a"
del "%temp%\%~n0.vbs"
set "YYYY=%result:~0,4%"
set "MM=%result:~4,2%"
set "DD=%result:~6,2%"
set "today=%yyyy%%mm%%dd%"

echo %today%
0 голосов
/ 04 ноября 2012

Роб ван дер Вуде имеет скрипт, который анализирует дату без использования WMIC, что требует административных прав.Вот ссылка на скрипт.Просто переименуйте его в файл .BAT:

http://www.robvanderwoude.com/files/sortdate_dos.txt

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...