bat批處理腳本 函數使用說明 函數調用結果如何返回

BAT批處理腳本也可以使用函數,函數可以帶參數,並且返回結果。但是批處理腳本的函數調用返回結果處理卻不是很友好,處理起來相對麻煩。本文詳細講解函數定義、函數調用及調用結果如何返回。

1、代碼案例

vfunc.bat

@echo off
echo sum1 a b, return with global variable.
set a=10
set b=20
call :sum1 %a% %b%
echo sum1(%a%,%b%)=%result1%
echo=

echo sum2 a b, return with argument.
set a=10
set b=20
call :sum2 %a% %b% result2
echo sum2(%a%,%b%)=%result2%
echo=

goto :eof

:sum1
set /a result1=%~1 + %~2
goto :eof

:sum2
set /a r3=%~1 + %~2
set "%~3=%r3%"
goto :eof

cmd命令框運行結果

D:\cmdtest\lianxi>vfunc.bat
sum1 a b, return with global variable.
sum1(10,20)=30

sum2 a b, return with argument.
sum2(10,20)=30

代碼說明:
1)函數定義

:sum1
set /a result=%~1 + %~2
goto :eof

注意:函數體執行完畢,別忘了goto :eof,結束函數執行

2)函數調用

call :sum1 %a% %b%
call :sum2 %a% %b% result2
rem 函數調用結果處理

2、兩種返回結果方式說明

1)全局變量
代碼中函數sum1,以全局變量實現返回結果

  • sum1函數體內,給變量result1賦值
  • 調用sum1函數後,獲取變量result1值

2)參數形式返回結果
函數sum2,以參數形式返回結果,類似高級語言的參數引用傳遞,實現格式如下:

  • sum2 arg1 arg2 引用參數result2
  • sum2 函數體內修改result2值,如:set “%~3=%r3%”
  • sum2 函數調用結束後,取參數result2值,%result2%
發佈了298 篇原創文章 · 獲贊 98 · 訪問量 77萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章