如何编写批处理脚本验证6位数字序列含三个5?
6位数字输入验证及含三个5检测的批处理脚本
搞定!我帮你写了一个完全符合需求的批处理脚本,不仅能验证输入是6位纯数字,还能准确统计其中数字5的个数,符合要求才会继续执行,否则给出提示。
@echo off setlocal enabledelayedexpansion :Input_Prompt set "UserInput=" set /p UserInput=请输入一段6位长度的数字序列: :: 验证输入是否为6位纯数字 echo !UserInput! | findstr /r "^[0-9][0-9][0-9][0-9][0-9][0-9]$" >nul if errorlevel 1 ( echo 错误:请输入**恰好6位的纯数字**! goto Input_Prompt ) :: 统计输入中数字5的个数 set "TempInput=!UserInput!" set "Count=0" :Count_Loop if "!TempInput!"=="" goto Count_Done if "!TempInput:~0,1!"=="5" set /a Count+=1 set "TempInput=!TempInput:~1!" goto Count_Loop :Count_Done if !Count! equ 3 ( goto Number_Has_Three_5 ) else ( goto Number_Dosent_Have_Three_5 ) :Number_Has_Three_5 echo 成功:输入包含恰好三个5,脚本继续执行... :: 在这里添加后续需要执行的代码 pause exit /b :Number_Dosent_Have_Three_5 echo 错误:输入不包含三个5(当前共!Count!个5),请重新输入! goto Input_Prompt
脚本功能细节拆解
我把每个关键步骤都做了注释,这里再给你理清楚逻辑:
- 输入循环提示:用
:Input_Prompt标签实现循环,用户输入错误后会回到输入界面,不用重新运行脚本 - 6位纯数字验证:借助
findstr的正则表达式^[0-9][0-9][0-9][0-9][0-9][0-9]$,确保输入是恰好6位的数字,排除字母、符号或长度不对的情况 - 数字5的计数逻辑:通过循环截取输入的每一位字符,判断是否为5,每匹配一次就把计数器加1
- 跳转逻辑:计数完成后,判断计数器是否等于3,分别跳转到对应的处理分支
测试示例
- 输入
111555:会进入Number_Has_Three_5分支,提示成功并执行后续代码 - 输入
111155:计数器为2,进入Number_Dosent_Have_Three_5分支,提示错误并回到输入界面 - 输入
abc123:会触发纯数字验证失败,提示重新输入
内容的提问来源于stack exchange,提问作者maximuslotr
相关产品推荐
相关产品推荐

