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

回复 3# 蚯蚓传奇


    在第一和第二行之间,加一句代码即可,有且仅对日期格式判断
  1. echo %_md%|findstr /x "[0-1][0-9]/[0-3][0-9]">nul||(echo 日期格式不正确&pause&exit /b)
复制代码
把日期对错也一并加入判断了。一次性完成日期对错和日期格式的判断。
  1. @echo off
  2. set/p "_md=输入日期(月值/日值):"
  3. echo %_md%|findstr /x "0[1-9]/0[1-9] 0[1-9]/[1-2][0-9] 0[13578]/3[0-1] 0[469]/30 1[0-2]/0[1-9] 1[0-2]/[1-2][0-9] 1[02]/3[0-1] 11/30">nul||set "v=不"
  4. echo 日期输入%v%正确!&pause&exit/b
复制代码
1

评分人数

TOP

回复 13# aloha20200628


    感谢大佬指正~!
大半夜想这些烧脑的东西,效率还是低了。

TOP

本帖最后由 ppll2030 于 2024-8-21 09:20 编辑

回复 16# qixiaobin0715


    哈哈。不是高手,因为我看你的这段也是头大
我对if嵌套很不喜,套多了就脑子不够用,逻辑跟不上。;P
我是能不用就不用。

至于这个findstr,其实很简单的啊,就是正向匹配而已。用表达式把符合的情况都列出来即可。
这不,半夜里费脑子,还是被大佬揪出瑕疵了。

TOP

回复 16# qixiaobin0715


    大概看到问题了。你这个if只是对数值的大小比较啊,所以 1 geq 01 是成立的。01在数值比较里就是1啊

TOP

回复 21# qixiaobin0715


    好吧。理解错了。字符串比较大小基本没用过。除了那个两字符串是否相符的“==” 回头补习一下。

TOP

回复 19# qixiaobin0715


    估计还要修改一下下

Please Input the Date (MM/DD):12-12
Input Error
Please Input the Date (MM/DD):12/12
Input Correct
请按任意键继续. . .
Please Input the Date (MM/DD):0/31
Input Correct
请按任意键继续. . .
Please Input the Date (MM/DD):10/31
Input Correct
请按任意键继续. . .
Please Input the Date (MM/DD):6/31
Input Correct
请按任意键继续. . .
Please Input the Date (MM/DD):4/31
Input Correct
请按任意键继续. . .
Please Input the Date (MM/DD):/31
Input Correct
请按任意键继续. . .
Please Input the Date (MM/DD):5/31
Input Correct
请按任意键继续. . .

TOP

返回列表