我希望得到昨天的约会,但是像MON
FRI
THU
这样的支持......
等等......下面的代码会将昨天的日期重新作为数字
无论如何得到它的缩写?
还是有任何其他简单的方法来完成表单循环。\
注意
powershell
方式不起作用,因为我的业务要求是在windows xp
for /F "tokens=1-4 delims=/- " %%a in ('date/T') do set DATE=%%c
for /F "tokens=1-4 delims=/- " %%a in ('date/T') do set /a DAY=%%c
set /a YESTERDAY = DATE - 1
echo %YESTERDAY%%
答案 0 :(得分:0)
鉴于您需要支持五代旧版操作系统,或许这个未经测试的示例就足够了:
@Echo Off
For /F "Skip=1Tokens=2-4Delims=(-/)" %%A In ('"Date<Nul"'
) Do For /F "Tokens=1-3Delims=/" %%a In ("%DATE%"
) Do Set "%%A=%%a" & Set "%%B=%%b" & Set "%%C=%%c"
Set/A mm=10%mm%%%100,dd=10%dd%%%100
If %mm% Lss 3 Set/A mm+=12,yy-=1
Set/A a=yy/100,b=a/4,c=2-a+b,e=36525*(yy+4716)/100,f=306*(mm+1)/10,^
dow=(c+dd+e+f-1523)%%7+1
For /F "Tokens=%dow%" %%A In ("Sat Sun Mon Tue Wed Thu Fri") Do Set "yddd=%%A"
Echo [%yddd%]
Pause
答案 1 :(得分:0)
你可以这样做:
@echo off
for /f %%i in ('powershell ^(get-date^).DayOfWeek') do set dow=%%i
echo %dow:~0,3%
或使用wmic
(更多代码但更有效!)
@echo off
setlocal enabledelayedexpansion
For /F "skip=2 tokens=2 delims==" %%a In ( 'wmic path win32_localtime get dayofweek /Value' ) Do set /a wd=%%a-1
if %wd%==1 set $wd=MON
if %wd%==2 set $wd=TUE
if %wd%==3 set $wd=WED
if %wd%==4 set $wd=THU
if %wd%==5 set $wd=FRI
if %wd%==6 set $wd=SAT
if %wd%==7 set $wd=SUN
echo Yesterdey was =^> %$wd%