中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-09 01:00
47,812 主题排行 / 349,914 发帖 / 今日 0 篇 / 48,268 会员排行
DOS批处理 & 脚本技术(批处理室) » if……else……语句中值得注意的一个问题
可打印版本  12,137 / 25
第16楼 gne3 发表于 2007-02-16 23:38
高级用户 发帖 252 积分 526
有看了一篇呵呵
第17楼 xycoordinate 发表于 2007-02-17 00:27
中级用户 发帖 228 积分 493 来自 安徽
学习!

我想计算前一天的日期
s:当前
l:前一天

set /p syear=
set /p smouth=
set /p sday=
if %smouth%%sday% == 0301 (
set /a yyyy=syear%%4
if %yyyy% == 0 (
set lmouth=02 && set lday=29
) else (
set lmouth=02 && set lday=28
)
)

echo %lmouth% %lday%


分别测试20030301,20040301,
结果都是02 28

20040301的结果应该是02 29呀!!!

???

[ Last edited by xycoordinate on 2007-2-20 at 10:14 AM ]
第18楼 weixieju 发表于 2007-03-01 11:07
新手上路 发帖 1 积分 2
只是说了IF语句的嵌套问题,只要学过C的朋友。不用就明白。
第19楼 lp1129 发表于 2007-03-28 02:36
初级用户 发帖 92 积分 186
非顶不可
第20楼 sadawn 发表于 2007-03-28 04:11
初级用户 发帖 14 积分 39
对于这个问题
我希望我们可以写出更可靠的代码`
比如这样
cd\
echo off
cls
echo 输入一个整数
set /p a=
if %a% gtr 90 echo ^>90&goto end
if %a% gtr 80 echo ^>80&goto end
if %a% gtr 70 echo ^>70&goto end
:end
pause

[ Last edited by sadawn on 2007-3-27 at 03:16 PM ]
第21楼 huahua0919 发表于 2007-10-11 20:34
银牌会员 发帖 780 积分 1,608
层层嵌套,层层括号!!
第22楼 shrfish 发表于 2007-10-19 11:50
新手上路 发帖 4 积分 8
收益匪浅,3Q
第23楼 zyz0304360 发表于 2008-03-10 23:42
中级用户 发帖 123 积分 257 来自 烟台
学习了
第24楼 nanhui112 发表于 2008-03-14 14:24
初级用户 发帖 59 积分 127
启用变量延迟
@echo off &setlocal enabledelayedexpansion
set /p syear=
set /p smouth=
set /p sday=
if "%smouth%%sday%"=="0301" (
set /a yyyy=syear%%4
if "!yyyy!"=="0" (
set lmouth=02 && set lday=29
) else (
set lmouth=02 && set lday=28
)
)

echo %lmouth% %lday%
pause
你的格式没问题,这里关系到bat的特殊性:
因为变量%yyyy%在同一if的括号语句里 所以要启用变量延迟,以捕捉动态变化,否则不能感知,会认为%yyyy%是空。看下面的例子,则可不用变量延迟扩展:
@echo off
set /p syear=
set /p smouth=
set /p sday=
if "%smouth%%sday%"=="0301" (
set /a yyyy=syear%%4 )
if "%yyyy%"=="0" (
set lmouth=02 && set lday=29
) else (
set lmouth=02 && set lday=28
)
echo %lmouth% %lday% &pause
---------我也是刚弄懂的^_^
第25楼 lokeymei 发表于 2008-11-08 18:01
新手上路 发帖 17 积分 18
学习中………………
多谢指点
第26楼 yyyyyyyyy 发表于 2009-02-02 12:13
初级用户 发帖 85 积分 137
受益了
上一页  1 2
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023