批處理-函數定義及應用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:::::::::::::::::::::::::::::::::::::::::::
相關文章
相關標籤/搜索