先看代码
[Asm] 纯文本查看 复制代码 @echo off
setlocal enabledelayedexpansion
:input
set "cs="
set /p cs=请输入一个自然整数(按回车确认):
rem 检查是否为负数、零或非法字符
echo Debugging: cs=!cs!
if "!cs:~0,1!"=="-" || "!cs!"=="0" (
goto :error
)
rem 使用 findstr 验证是否为自然整数
echo !cs! | findstr /r "[1-9][0-9]*$" >nul
if errorlevel 1 (
goto :error
)
echo 输入正确:!cs!
pause
:error
echo 输入错误:请输入一个自然整数(不包括负数、零或非法字符)!
goto :input
endlocal
这个代码本意是让用户输入正确的有效数字,即1以上的整数,不包含负数,0开头的数字或者小数以及非数字类的字符,否则提示用户重新输入,如果输入正确,则输出正确数值。
按代码逻辑来说,似乎编译的没有问题,但现在的情况是,可以正常输入,但无论你输入的是啥,敲回车后就直接关闭了,也不输出错误也不输出正确~~ 请各位大佬给瞅瞅哪里的问题
另外,问个额外的事,有啥编程软件适合需求量不高的人使用的,比如我,只是用编程软件写一下体积不大的实用小工具,不需要太复杂的命令,主要应用平台是WINDOS平台。。最好是中文的(主要是英语不好~),如果有的话也给推荐推荐~ |