Вычтите количество лет из даты в пакетном файле - PullRequest
0 голосов
/ 29 ноября 2018

В настоящее время у меня есть это:

 for /F "tokens=2 delims==." %%I in ('%SystemRoot%\System32\wbem\wmic.exe OS  GET LocalDateTime /VALUE') do set "FileNameDate=%%I"
 set "FileNameDate=%FileNameDate:~0,4%-%FileNameDate:~4,2%-%FileNameDate:~6,2%"

Используется для получения даты в формате, который соответствует формату дат в файлах, которые другой пакетный файл использует для поиска прошлых дат.Я хочу использовать это снова, но я хочу изменить дату, вычитая 2 года из нее.Поэтому вместо вывода:

2018-11-29

Я бы хотел получить:

2016-11-29

Понять?

Как я могу это сделать?

1 Ответ

0 голосов
/ 29 ноября 2018

Это просто через командный файл:

@echo off
setlocal

for /F "tokens=2 delims==." %%I in ('%SystemRoot%\System32\wbem\wmic.exe OS  GET LocalDateTime /VALUE') do set "FileNameDate=%%I"
set "FileNameDate=%FileNameDate:~0,8%"

REM Activate next line for test:
REM set /P "FileNameDate=YYYYMMDD: "

set /A "FileNameDate-=20000+!(1%FileNameDate:~4,4%-10229)"
set "FileNameDate=%FileNameDate:~0,4%-%FileNameDate:~4,2%-%FileNameDate:~6,2%"
echo %FileNameDate%

Тестовый вывод:

YYYYMMDD: 20181129
2016-11-29

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