Originally posted by xycoordinate at 2007-2-17 21:29:
再问一下:
@echo off
set syear=2008
if %smouth% == 2 (
set yyyy=syear%%4
if %yyyy% == 0 (
set lday=29
) else (
set ldate =28
)
)
echo %lday%
应该是29呀?? ...
因为if语句实际上都在一行上,只不过你的写法上把它分为了几行。
在同一行上的多次对变量的操作存在一个变量延迟的问题,比如:
set str=cn-dos.net && echo %str%
就只会在屏幕上打印%str%而不是cn-dos.net,你的代码中应该就是与此类似的情况。
建议可以先用setlocal ENABLEDELAYEDEXPANSION启用延迟的环境变量,然后在if语句中用!!来代替%%试试。