本帖最后由 几维kiwi 于 2012-2-25 17:56 编辑
写了一个较完整的版本,写的不好的地方,请大家指出一下,多谢!- ::设置等待用户输入,并将输入结果显示在批处理窗口;
- ::将用户输入的第一数字和第二个数字之和显示在批处理窗口;
-
- @echo off
- echo .........Summary Program..........
-
- rem 用户输入两个数字
- :begin
- echo.
- set num1=
- set num2=
- set /p num1=^> please input number1:
- set /p num2=^> please input number2:
-
- rem 检查输入的字符是否为数字
- set numFlag=true
- call :checkNumber %num1%
- if "%result%" == "false" echo error:number1 is not a number&(set numFlag=false)
- call :checkNumber %num2%
- if "%result%" == "false" echo error:number2 is not a number&(set numFlag=false)
- if "%numFlag%" == "false" goto :begin
-
- rem 如果输入的都是数字,则对数字相加,并输出结果
- set /a sum=num1+num2
- echo ==========RESULT============
- echo num1=%num1%
- echo num2=%num2%
- echo num1+num2=%sum%
- echo ============================
-
- rem 是否重来?
- echo.
- set /p redo=try again? (y or n)
- if /i "%redo%"=="y" goto :begin
- echo enter any key to exit ...
- pause>nul
- goto :eof
-
- rem 定义函数:判断是否为数字
- rem 判断方法:通过判断字符串是否被数字分割来判断是否包含数字
- :checkNumber
- set n=%1
- if not "%n%"=="" (
- for /f "delims=1234567890" %%a in ("%n%@") do if "%%a"=="@" (set result=true) else (set result=false)
- ) else (
- set result=false
- )
- goto :eof
复制代码
|