[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] [已解决]批处理怎么控制让用户输入的是时间格式?

批处理怎么控制让用户输入的是时间格式
判断用户输入的字符,如果不是时间格式,提示“时间格式不正确”

[ 本帖最后由 ljs4r 于 2009-12-8 20:22 编辑 ]
1

评分人数

    • Batcher: 感谢主动给标题标注[已解决]字样PB + 2

不好意思,复制代码测试的时候搞错了。把bamboo的复制进去了……汗,我的是这个
  1. @echo off&setlocal enabledelayedexpansion
  2. :begin
  3. cls
  4. set /p t=请输入时间,格式(00:00-23:59):
  5. for /f "tokens=1,2 delims=:" %%i in ("%t%") do (
  6. set h1=%%i
  7. set m1=%%j
  8. )
  9. for /l %%k in (100,1,123) do (
  10. set h2=%%k
  11. set h3=!h2:~1,2!
  12. if "!h1!"=="!h3!" set p=0
  13. )
  14. :1
  15. for /l %%n in (100,1,159) do (
  16. set m2=%%n
  17. set m3=!m2:~1,2!
  18. if "!m1!"=="!m3!" set q=0
  19. )
  20. if not defined p ( echo 时间格式错误&pause>nul&goto begin) else (
  21. if defined q (echo 时间格式正确) else (
  22. echo 时间格式错误&pause>nul&goto begin))
  23. pause>nul
复制代码
看了一下,大同小异

TOP

突然发现都错了,如果时间格式是00:00:00还是会判断为正确的,这该怎么解决呀???

TOP

  1. @echo off
  2. set /p t=请输入时间:
  3. for /f "tokens=1-2 delims=:" %%a in ("%t%") do (
  4. set hour=1%%a
  5. set min=1%%b
  6. )
  7. for /l %%a in (100,1,123) do (
  8. if "%%a"=="%hour%" (set hourflag=1)
  9. )
  10. for /l %%a in (100,1,159) do (
  11. if "%%a"=="%min%" (set minflag=1)
  12. )
  13. if not defined hourflag ( echo 时间格式错误) else (
  14. if not defined minflag (echo 时间格式错误) else (
  15. echo 时间格式正确))
  16. pause>nul
复制代码

请求删除!!!

[ 本帖最后由 x576380361 于 2009-12-8 22:08 编辑 ]

TOP

  1. @echo off & setlocal enabledelayedexpansion
  2. :v
  3. if !dd! gtr 1 (echo 时间格式错误)
  4. echo    请输入时间,时间格式为:00:00-23:59 & set /p t=
  5. cls
  6. set t5=%t:~4,1%
  7. if not  "!t5!"=="" call :xx
  8. set t3=%t:~2,1%
  9. if "%t3%"==":" (for /f "delims=: tokens=1,*" %%a in ("%t%") do (
  10. if %%a gtr 23 call :xx
  11. if %%b gtr 59 call :xx
  12. echo 时间格式正确)
  13. ) else call :xx
  14. pause>nul
  15. goto :eof
  16. :xx
  17. set /a dd+=1 & goto v
复制代码

[ 本帖最后由 yangfengoo 于 2009-12-8 22:13 编辑 ]

TOP

试试这段代码
  1. @echo off
  2. set /p t=请输入时间:
  3. for /f "tokens=1-2 delims=:" %%a in ("%t%") do (
  4. set hour=1%%a
  5. set min=1%%b
  6. )
  7. for /l %%a in (100,1,123) do (
  8. if "%%a"=="%hour%" (set hourflag=1)
  9. )
  10. for /l %%a in (100,1,159) do (
  11. if "%%a"=="%min%" (set minflag=1)
  12. )
  13. if not defined hourflag ( echo 时间格式错误) else (
  14. if not defined minflag (echo 时间格式错误) else (
  15. echo 时间格式正确))
  16. pause>nul
复制代码
1

评分人数

TOP

回复 3楼 的帖子

这样试试:
  1. @echo off
  2. :kaishi
  3. cls
  4. set /p shijian=请输入时间格式(时间段是00:00--23:59):  
  5. for /f "tokens=1,2 delims=:" %%i in ("%shijian%") do (
  6.       set num1=%%i
  7.       set num2=%%j
  8.       if "%%j"=="" goto next
  9. )
  10. if %num1%%num2% geq 0 if %num1%%num2% leq 2359 echo/&echo 输入时间格式正确!&ping -w 1 -n 5 127.1 >nul &goto :eof
  11. :next
  12. echo/&echo 输入时间格式错误,请重新输入!&ping -w 1 -n 5 127.1 >nul &goto kaishi
复制代码
1

评分人数

TOP

批处理怎么控制让用户输入的是时间格式

我想要让用户控制输入00:00-23:59的数据,输入其它都提示“时间格式错误”
1

评分人数

TOP

回复楼上

我想要让用户控制输入00:00-23:59的数据,输入其它都提示“时间格式错误”

TOP

你希望的时间格式是啥样的?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表