中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 求助:命令if...... 上一主题 | 下一主题
xycoordinate
中级用户




积分 493
发帖 228
注册 2007-2-16
来自 安徽
状态 离线
『楼 主』:  求助:命令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 ]

2007-2-22 10:35
查看资料  发送邮件  发短消息 网志  OICQ (226308607)  编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 2 楼』:  

这个可能根格式有关吧~

2100年呢?呵呵虽然能被4整除但是是28天哦。

2007-2-22 11:40
查看资料  发短消息 网志   编辑帖子  回复  引用回复
qasa
高级用户




积分 959
发帖 311
注册 2006-4-11
来自 广东-LianJiang
状态 离线
『第 3 楼』:  

其中的格式已经不对了,因为你已经用了延迟变量,应如下:

@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 ]



κχυμγνξοθπρωψιαδλεηφβτζσ┬╀┾┳┞┯┰┱┣┲┳╂╁│├┟┭┠这是什么??这就是我的人生
2007-2-23 03:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
anqing
高级用户




积分 859
发帖 413
注册 2006-8-14
状态 离线
『第 4 楼』:  

学习了,昨天,我看了此帖,找不出毛病!

2007-2-23 03:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xycoordinate
中级用户




积分 493
发帖 228
注册 2007-2-16
来自 安徽
状态 离线
『第 5 楼』:  

谢谢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 ]

2007-2-23 09:00
查看资料  发送邮件  发短消息 网志  OICQ (226308607)  编辑帖子  回复  引用回复
qasa
高级用户




积分 959
发帖 311
注册 2006-4-11
来自 广东-LianJiang
状态 离线
『第 6 楼』:  


  if "!yyyy!" == "0" (set lday=29) else (set lday =28)
唉,这是你的粗心大意造成的结果,你后面 lday =28,变量后面多了一个空格。
把空格去掉就可以了。

  if "!yyyy!" == "0" (set lday=29) else (set lday=28)




κχυμγνξοθπρωψιαδλεηφβτζσ┬╀┾┳┞┯┰┱┣┲┳╂╁│├┟┭┠这是什么??这就是我的人生
2007-2-23 09:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xycoordinate
中级用户




积分 493
发帖 228
注册 2007-2-16
来自 安徽
状态 离线
『第 7 楼』:  



  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千言万语......

佩服呀!

2007-2-23 10:54
查看资料  发送邮件  发短消息 网志  OICQ (226308607)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: