[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
我也是初学者,看看我对楼主的代码进行的修改,应该符合了今天和昨天的要求,不过代码应该可以再精简一下,比如if换成for循环可能好点,但是我不太懂for,呵呵!

@echo off&setlocal enabledelayedexpansion
set yyyy=%date:~0,4%
set mm=%date:~5,2%
set dd=%date:~8,2%
set m1=%date:~5,1%
set d1=%date:~8,1%
set bb=0
if !m1!==0 set mm=%date:~6,1%
if !d1!==0 set dd=%date:~9,1%
set /a nd=!dd!-1
if !nd!==0 call :dd0
if !mm!==0 call :mm0

echo 今天是:%date:~0,10%
echo 昨天是:!yyyy!-!mm!-!nd!

if !mm!==1 set "mm=!bb!!mm!"
if !mm!==2 set "mm=!bb!!mm!"
if !mm!==3 set "mm=!bb!!mm!"
if !mm!==4 set "mm=!bb!!mm!"
if !mm!==5 set "mm=!bb!!mm!"
if !mm!==6 set "mm=!bb!!mm!"
if !mm!==7 set "mm=!bb!!mm!"
if !mm!==8 set "mm=!bb!!mm!"
if !mm!==9 set "mm=!bb!!mm!"
if !nd!==1 set "nd=!bb!!nd!"
if !nd!==2 set "nd=!bb!!nd!"
if !nd!==3 set "nd=!bb!!nd!"
if !nd!==4 set "nd=!bb!!nd!"
if !nd!==5 set "nd=!bb!!nd!"
if !nd!==6 set "nd=!bb!!nd!"
if !nd!==7 set "nd=!bb!!nd!"
if !nd!==8 set "nd=!bb!!nd!"
if !nd!==9 set "nd=!bb!!nd!"

echo 昨天是:!yyyy!-!mm!-!nd!

pause


:dd0
set /a mm=!mm!-1
for %%a in (1 3 5 7 8 10 12)do set %%add=31
set /a pddd=!yyyy!*10/4
set pd2d=!pddd:~-1,1!
set 2dd=28
if !pd2d!==0 set 2dd=29
for %%b in (4 6 9 11)do set %%bdd=30
set nd=!%mm%dd!
goto :eof
:mm0
set /a yyyy=!yyyy!-1
set mm=12
set nd=31
goto :eof

有什么问题请楼下的高手提出,相互学习学习!!!

TOP

我改成 if !mm!lss10 set "mm=!bb!!mm!"  为什么执行不了呢?显示“此时不应有 set  ” 我初学,不知道什么原因,请教高手解答,或者该怎么写???谢谢!!!

TOP

谢谢寒夜孤星,我改成 if !mm! lss 10 set "mm=!bb!!mm!"  运行通过了,我语法还是不行,有待加强学习!!!谢谢

TOP

返回列表