在批处理文件中获取昨天的缩写

时间:2018-03-13 09:55:40

标签: batch-file

我希望得到昨天的约会,但是像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%%

2 个答案:

答案 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%