[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
参考:http://bbs.bathome.net/thread-12558-1-1.html
可以把日期看成一个大数18990101~19990101之间的数去较对正误就行了!
一个FOR+一个CALL把他们的程序拿来就行了呵
世界上没有学不会的知识,也没有想得到却做不到的事!

TOP

本帖最后由 mxxcgzxxx 于 2011-6-4 11:28 编辑
  1. @echo off
  2. set 正模式=
  3. set "正模式=%正模式% ^[1-2][0-9][0-9][0-9]0[1-9]0[1-9]$"
  4. set "正模式=%正模式% ^[1-2][0-9][0-9][0-9]0[1-9]1[0-9]$"
  5. set "正模式=%正模式% ^[1-2][0-9][0-9][0-9]0[^02]2[0-9]$"
  6. set "正模式=%正模式% ^[1-2][0-9][0-9][0-9]022[0-8]$"
  7. set "正模式=%正模式% ^[1-2][0-9][0-9][0-9]0[13578]3[0-1]$"
  8. set "正模式=%正模式% ^[1-2][0-9][0-9][0-9]0[469]30$"
  9. set "正模式=%正模式% ^[1-2][0-9][0-9][0-9]1[0-2]0[1-9]$"
  10. set "正模式=%正模式% ^[1-2][0-9][0-9][0-9]1[0-2][12][0-9]$"
  11. set "正模式=%正模式% ^[1-2][0-9][0-9][0-9]1[02]3[0-1]$"
  12. set "正模式=%正模式% ^[1-2][0-9][0-9][0-9]1130$"
  13. set "正模式=%正模式% ^[1-2][0-9][13579][26]0229$"
  14. set "正模式=%正模式% ^[1-2][0-9][2468][048]0229$"
  15. set "正模式=%正模式% ^[1-2][0-9][02468][48]0229$"
  16. set "正模式=%正模式% ^[02468][048]000229$"
  17. set "正模式=%正模式% ^[13579][26]000229$"
  18. :loop
  19. set /p 开始日期=按yyyymmdd格式输入开始日期:
  20. echo.%开始日期%|findstr "%正模式%">nul && set "a=%开始日期%" || goto :loop
  21. :loop1
  22. set /p 结束日期=按yyyymmdd格式输入结束日期:
  23. echo.%开始日期%|findstr "%正模式%">nul && cls || goto :loop1
  24. if %结束日期% lss %开始日期% echo 结束日期小于开始日期! & goto:loop1
  25. :1
  26. if %a:~4,2%==13 set /a a=a/10000*10000+9999
  27. if %a:~6,2%==32 set /a a=a/100*100+99
  28. echo.%a%|findstr "%正模式%">nul && echo %a%
  29. if %a%==%结束日期% goto :2
  30. set /a a+=1        
  31. goto :1
  32. :2
  33. pause>nul
  34. goto :loop
复制代码
世界上没有学不会的知识,也没有想得到却做不到的事!

TOP

本帖最后由 mxxcgzxxx 于 2011-6-4 11:33 编辑

我没采用FOR是因为13~99月那里很浪费时间,现在改了下取消了变量延时开关会更快点吧
世界上没有学不会的知识,也没有想得到却做不到的事!

TOP

返回列表