中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-03 11:58
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 求助:命令if......
可打印版本  850 / 6
第1楼 xycoordinate 发表于 2007-02-22 10:35
中级用户 发帖 228 积分 493 来自 安徽
求助:命令if......
test.bat

@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 ]
第2楼 slore 发表于 2007-02-22 11:40
铂金会员 发帖 2,478 积分 5,212
这个可能根格式有关吧~

2100年呢?呵呵虽然能被4整除但是是28天哦。
第3楼 qasa 发表于 2007-02-23 03:45
高级用户 发帖 311 积分 959 来自 广东-LianJiang
其中的格式已经不对了,因为你已经用了延迟变量,应如下:


我改了一点点,这样28天才可以显示正常。

[ Last edited by qasa on 2007-2-23 at 09:47 AM ]
第4楼 anqing 发表于 2007-02-23 03:57
高级用户 发帖 413 积分 859
学习了,昨天,我看了此帖,找不出毛病!
第5楼 xycoordinate 发表于 2007-02-23 09:00
中级用户 发帖 228 积分 493 来自 安徽
谢谢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 ]
第6楼 qasa 发表于 2007-02-23 09:46
高级用户 发帖 311 积分 959 来自 广东-LianJiang


唉,这是你的粗心大意造成的结果,你后面 lday =28,变量后面多了一个空格。
把空格去掉就可以了。


第7楼 xycoordinate 发表于 2007-02-23 10:54
中级用户 发帖 228 积分 493 来自 安徽
Originally posted by qasa at 2007-2-22 08:46 PM:


唉,这是你的粗心大意造成的结果,你后面 lday =28,变量后面多了一个 ...



郁闷死了!!!!

qasa,DJ千言万语......

佩服呀!
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023