Как получить вчерашнюю дату в определенном формате? - PullRequest
0 голосов
/ 26 апреля 2019

Мне нужно установить Сегодня и вчерашнюю дату в переменной в фиксированном формате ГГГГММДД.

На сегодняшний день, когда я сделал

SET TODAY=%date:~10,4%%date:~4,2%%date:~7,2%

это сработало и отображало «20190426». Но как установить вчерашнюю дату, чтобы я получил ее в формате - «20190425»?

Ответы [ 4 ]

1 голос
/ 26 апреля 2019

Чтобы получить вчерашнюю дату:

$ date +%Y%m%d --date yesterday
20190425

Чтобы получить ее в переменную:

$ var=$(date +%Y%m%d --date yesterday)
$ echo $var
20190425

Обновление и были проданы на , к которым это решение не применимо.

0 голосов
/ 27 апреля 2019

Ранее опубликованные ответы не являются чисто пакетными решениями ... Вы можете использовать метод, описанный в этот ответ или просто использовать этот более простой подход :

@echo off
setlocal

set /A "YYYY=%date:~10,4%, MM=1%date:~4,2%, M=MM-100, DD=1%date:~7,2%, D=DD-100"
echo TODAY: %YYYY%%MM:~1%%DD:~1%

set /A "C1=!(D-=1),M-=C1*(1-12*(C2=!(M-1))),YYYY-=C1*C2,MM=100+M,DD=100+(D+=C1*(30+((M+(M>>3))&1)-!(M-2)*(2-!(YYYY%%4))))"
echo YESTERDAY: %YYYY%%MM:~1%%DD:~1%
0 голосов
/ 26 апреля 2019

Здесь, на [SO]
https://www.google.com/search?q=site%3Astackoverflow.com+batch+yesterday

, есть буквально сотни вопросов.

или пакетный файл

@Echo off
for /f "usebackq delims=" %%A in (`
    powershell -NoP -C "'yesterday={0:yyyyMMdd}' -f (Get-Date).AddDays(-1);'today={0:yyyyMMdd}' -f (Get-Date)"
`) do set "%%A"
0 голосов
/ 26 апреля 2019

Вы можете использовать этот пакетный / VBS-гибрид, вам нужно сохранить его как * .bat или .cmd файл с расширением.set day=-1 строка.

...