标题: [求助]如何限定输入参数值的范围
[打印本页]
作者: hgx126
时间: 2009-5-7 06:37
标题: [求助]如何限定输入参数值的范围
我写一更改系统日期的批处理,如下:
@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 ]
作者: freeants001
时间: 2009-5-7 08:52
- @echo off
- set year1=2008
- set year2=2010
- :input
- set /p da=请输入正确日期:
- echo.%da%|findstr /i "^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$">nul||goto:input
- if %da:~0,4% GEQ %year1% if %da:~0,4% LEQ %year2% (
- (echo.|date %da:~0,4%-%da:~4,2%-%da:~6,2%)2>nul|findstr /i "^[^0-9]*$">nul||(
- echo.设置成功^_^!当前日期%date%&pause&exit /b))
- echo.设置失败-_-!当前日期%date%
- goto:input
作者: netbenton
时间: 2009-5-7 12:56
此问题要考虑的东西太多,并且早已经有讨论过。
建议楼主在论坛搜索“日期”看看