我需要以固定格式YYYYMMDD设置变量中的今天和昨天的日期。
对于今天,我什么时候
ERROR: Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-ihlh4pr0/rpy2/
它正常工作并显示“ 20190426”。 但是如何设置昨天的日期,以便我以'20190425'的格式获取它?
答案 0 :(得分:1)
要获取昨天的日期:
$ date +%Y%m%d --date yesterday
20190425
要将其放入var中:
$ var=$(date +%Y%m%d --date yesterday)
$ echo $var
20190425
答案 1 :(得分:0)
您可以使用此批处理/ vbs混合,需要将其另存为.bat
或.cmd
扩展文件。
@echo off
set day=-1
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 "final=%yyyy%%mm%%dd%"
echo %final%
请注意,您可以在set day=-1
行中切换天数。
答案 2 :(得分:0)
[SO]上确实有成百上千个问题
https://www.google.com/search?q=site%3Astackoverflow.com+batch+yesterday
我建议为此使用PowerShell一层衬里,并用cmd线包裹
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"
或批处理文件
@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"
答案 3 :(得分:0)
以前发布的答案不是纯粹的批处理文件解决方案...您可以使用this answer中说明的方法,也可以仅使用this simpler approach:
@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%