zoukankan      html  css  js  c++  java
  • 批处理-函数定义及应用01

     1 @echo off
     2 :: 批处理中所谓的函数,是用标签定义功能充当的。支持参数的传递,类似脚本文件运行时命令行参数的传递。
     3 ::  函数返回值用标签作为变量名作为返回使用,用完标签名变量立即释放变量,避免后面同样需要调用该函数,引起返回值的混乱。
     4 :: exit /b code  在标签定义中表示退出当前函数,并返回错误状态值code。在call调用完毕后,回到call调用处继续执行后续指令。
     5 ::               不带/b表示直接退出cmd环境。
     6 
     7 
     8 
     9 :::::::::::::::::::::::::::::::Main Begin::::::::::::::::::::::::::::::::::::::::::::::
    10 :Main
    11 echo;欢迎进入批处理天地!
    12 echo;
    13 echo;加法运算开始.
    14 set /p n1=请输入第一个数字:
    15 set /p n2=请输入第二个数字:
    16 
    17 call :IsDigital %n1% 
    18 set r1=%errorlevel% 
    19 call :IsDigital %n2% 
    20 set r2=%errorlevel%
    21 
    22 
    23 if "%r1%"=="200" (
    24   if "%r2%"=="200" (     
    25       call :Add %n1% %n2%
    26       call,echo;%n1%与%n2%之和为:%%Add%%
    27    ) else (echo;%n2%不是数字无法参与运算.)
    28 ) else (echo;%n1%不是数字无法参与计算.)
    29 
    30 pause & exit 
    31 :::::::::::::::::::::::::::::::Main End::::::::::::::::::::::::::::::::::::::::::::::
    32 
    33 
    34 :::::::::::::::::::::::::::::::Add Begin::::::::::::::::::::::::::::::::::::::::::
    35 ::   功能:两数相加。
    36 :Add
    37 ::变量传递查看。
    38 ::echo;%*
    39 set /a num1=%1
    40 set /a num2=%2
    41 set sum=
    42 set /a sum=%num1% + %num2%
    43 ::echo;%num1% + %num2% = %sum%
    44 ::返回值用标签当作变量返回。
    45 set /a add=%sum% &exit /b 0
    46 :::::::::::::::::::::::::::::::Add End::::::::::::::::::::::::::::::::::::::::::
    47 
    48 :::::::::::::::::::::::::::::IsDigital Begin:::::::::::::::::::::::::::::::::::::::::::
    49 ::    功能:判断给入的字符是否是纯数字。
    50 ::        exitcode  200 表示成功,是数字。250 表示失败,不是数字。
    51 :IsDigital
    52 set "num=%1"
    53 ::情况一:数字字符串中含空格。
    54 ::set num=%num: =%
    55 echo;%num%|findstr "^[0-9][0-9]*$" >nul && call,set IsDigital=%%num%%
    56 if not defined IsDigital (echo;%num%不是数字. & exit /b 250) else (echo;%num%是纯数字. & exit /b 200)
    57 :::::::::::::::::::::::::::::IsDigital End:::::::::::::::::::::::::::::::::::::::::::
  • 相关阅读:
    Oracle死锁
    Oralce新建用户及表空间维护
    oracle作业运行中,无法停止
    ora-01652 无法通过128 (在表空间 TEMP中)扩展temp段
    Centos7搭建Apache2.4
    LAMP搭建
    Mysql数据库
    VSFTPD服务器
    windows下划分逻辑分区
    sendmail邮件服务器
  • 原文地址:https://www.cnblogs.com/ai20110304/p/12595425.html
Copyright © 2011-2022 走看看