标题: 求助:命令if......
[打印本页]
作者: xycoordinate
时间: 2007-2-22 10:35
标题: 求助:命令if......
test.bat
Quote: |
@echo off
setlocal ENABLEDELAYEDEXPANSION
set syear=2008
set smouth=02
if %smouth% == 02 (
set /a yyyy=syear%%4
if %yyyy% == 0 (set lday=29) else (set lday =28)
)
echo %lday% |
|
CMD下执行
>test.bat
此时不应有 (set。
?????????
笔误:将lday写成了ldate了!!!
[
Last edited by xycoordinate on 2007-2-22 at 07:55 PM ]
作者: slore
时间: 2007-2-22 11:40
这个可能根格式有关吧~
2100年呢?呵呵虽然能被4整除但是是28天哦。
作者: qasa
时间: 2007-2-23 03:45
其中的格式已经不对了,因为你已经用了延迟变量,应如下:
@echo off
setlocal ENABLEDELAYEDEXPANSION
set syear=2008
set smouth=02
if "!smouth!" == "02" (
set /a yyyy=!syear!%%4
if "!yyyy!" == "0" (set lday=29) else (set ldate=28)
)
echo !lday! !ldate!
我改了一点点,这样28天才可以显示正常。
[
Last edited by qasa on 2007-2-23 at 09:47 AM ]
作者: anqing
时间: 2007-2-23 03:57
学习了,昨天,我看了此帖,找不出毛病!
作者: xycoordinate
时间: 2007-2-23 09:00
谢谢qasa
test.bat
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set syear=2007
set smouth=02
if "!smouth!" == "02" (
set /a yyyy=!syear!%%4
if "!yyyy!" == "0" (set lday=29) else (set lday =28)
)
echo !lday!
CMD下执行test.bat,报错:
ECHO 处于关闭状态。
??????
我写这个P,是为了区别闰年与平年的,大家有什么好方法吗?????????
[
Last edited by xycoordinate on 2007-2-22 at 08:03 PM ]
作者: qasa
时间: 2007-2-23 09:46
if "!yyyy!" == "0" (set lday=29) else (set lday =28)
唉,这是你的粗心大意造成的结果,你后面 lday =28,变量后面多了一个空格。
把空格去掉就可以了。 if "!yyyy!" == "0" (set lday=29) else (set lday=28)
作者: xycoordinate
时间: 2007-2-23 10:54
Quote: |
Originally posted by qasa at 2007-2-22 08:46 PM:
if "!yyyy!" == "0" (set lday=29) else (set lday =28) 唉,这是你的粗心大意造成的结果,你后面 lday =28,变量后面多了一个 ... |
|
郁闷死了!!!!
qasa,DJ千言万语......
佩服呀!