@Seli_one

Как сравнить две даты в dat?

Здравствуйте коллеги.
Имеется задача сравнение двух дат.
Первую дату получаю так:
set now=%date%
Вторую получаю так:
FOR /F "tokens=* USEBACKQ" %%a IN (`net user /DOMAIN %username% ^| findstr /C:"Password expires"`) DO (set p=%%a)
set pass=%p:~29,-9%

Далее мне эти даты нужно сравнить.
И если разница между датами составляет некое n дней, выполнять некие действия.
Подскажите, может кто то знает как работать с датами.
  • Вопрос задан
  • 369 просмотров
Пригласить эксперта
Ответы на вопрос 2
@res2001
Developer, ex-admin
Батники не умеют работать с датами. Тут все переменные строковые.
Да, set /a умеет целочисленную арифметику, но результат все равно строковый.
Нужно перевести даты в количество дней с начала эпохи, а потом их уже можно сравнивать стандартными средствами.
Проще всего использовать для этих целей более продвинутые средства, умеющие работать с датами, например powershel, JS, VBS - эти скрипты при желании можно вызывать из батника.
Но если очень хочется, можно и батником пересчитать. Алгоритм расчета есть на вики. Код можно дернуть отсюда - https://www.robvanderwoude.com/files/datediff_nt.txt
Ответ написан
Комментировать
@Olgeir
см. https://olegon.ru/showthread.php?t=16437 библиотека datemath.bat
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы