中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何限定输入参数值的范围
作者:
标题: [求助]如何限定输入参数值的范围 上一主题 | 下一主题
hgx126
初级用户





积分 100
发帖 80
注册 2008-9-12
状态 离线
『楼 主』:  [求助]如何限定输入参数值的范围

我写一更改系统日期的批处理,如下:
@echo off
set /p da=请输入正确日期(如:20081231):
set dy=%da:~0,4%
set dm=%da:~4,2%
set dd=%da:~6,2%
date %dy%-%dm%-%dd%
echo 系统当前时间为:%date%
pause >nul
我想将“da”这个输入参数的值确定在如下范围:
1、年份(即dy的值)限定在2008-2010年之间;
2、月份(即dm的值)限定在1-12之间;
3、日期(即dd的值)根据输入的月份确定。比如1,3,5,7,8,10,12月份的日期限定在1-31之间;4,6,9,11月份的日期限定在1-30之间;2月份根据是否是闰年,限定在1-29或1-28之间。

同时希望加入这样的提示:一旦输入的值不在以上范围,就提示输入的值错误,请重新输入。


请大家帮个忙!

[ Last edited by hgx126 on 2009-5-7 at 06:38 ]

2009-5-7 06:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
freeants001
中级用户




积分 330
发帖 244
注册 2006-4-14
来自 湖北
状态 离线
『第 2 楼』:  

  1. @echo off
  2. set year1=2008
  3. set year2=2010
  4. :input
  5. set /p da=请输入正确日期:
  6. echo.%da%|findstr /i "^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$">nul||goto:input
  7. if %da:~0,4% GEQ %year1% if %da:~0,4% LEQ %year2% (
  8. (echo.|date %da:~0,4%-%da:~4,2%-%da:~6,2%)2>nul|findstr /i "^[^0-9]*$">nul||(
  9. echo.设置成功^_^!当前日期%date%&pause&exit /b))
  10. echo.设置失败-_-!当前日期%date%
  11. goto:input


2009-5-7 08:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 3 楼』:  

此问题要考虑的东西太多,并且早已经有讨论过。

建议楼主在论坛搜索“日期”看看



精简
[你的+我的+他的]=>[大家的]    个人网志   
2009-5-7 12:56
查看资料  发送邮件  发短消息 网志  OICQ (37659560)  编辑帖子  回复  引用回复

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


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



论坛跳转: