bat函數調用 帶返回值


bat 腳本之 使用函數

摘自:https://blog.csdn.net/peng_cao/article/details/73999076

 

綜述

Windows bat腳本是一種解釋性的腳本語言,可以拿到做很多事情。對於稍簡單的問題:比如通過注冊表判斷下檔期機器的語言啊,國家啊,安裝了那些軟件啊等等還少誒簡單。但是如果有可能使用bat腳本來處理較復雜的問題時,就需要用函數來將其模塊化,方便bat腳本的閱讀和編寫。下面來介紹下bat 函數的用法

bat函數寫法

如下是一個最簡單的函數寫法;以:func開始以goto:eof結束。:funcgoto:eof之間的為函數內容,例如這里的echo this is a bat func

:func
echo this is a bat func
goto:eof

bat函數調用

寫好了bat函數之后,我們需要調用它。如下代碼片段展示了如何在bat腳本中調用函數。其實很簡單,就這一句call:func即可。

call:func
pause
:func
echo this is a bat func
goto:eof

bat函數返回值

目前我了解到的bat函數返回值的獲取有如下兩種方法:

  • 使用參數帶回
  • 使用全局變量帶回

這里直接貼上關於bat函數的各種條件的驗證代碼

參數作為輸出參數時,注意:

  1. ::注: 參數作為輸出參數時,函數內不要使用SETLOCAL和ENDLOCAL
  2. ::注: 參數作為輸出參數時,此文件不要設置setlocal enabledelayedexpansion
echo off
color 0d
echo bat Function example
echo =================================
echo ==========Func No paramter ======
echo =================================
echo before call myFuncNoPara
call:myFuncNoPara
echo after call myFuncNoPara
echo =================================
echo ===========Func has paramter=====
echo =================================
echo before call myFuncHasPara
call:myFuncHasPara 123 abc
echo after call myFuncHasPara
echo =================================
echo =======Func with return value====
echo =================================
set return=123
set returnPara=321
echo return:%return%
echo returnPara:%returnPara%
echo befora call myFuncReturnValue
call:myFuncReturnValue returnPara abc
echo after call myFuncReturnValue
echo return:%return%
echo returnPara:%returnPara%
goto:eof

pause
:myFuncNoPara
echo myFuncNoPara enter
echo myFuncNoPara First para:%1
echo myFuncNoPara Second para:%2
echo myFuncNoPara Third para:%3
echo myFuncNoPara exit
goto:eof

:myFuncHasPara
echo myFuncHasPara enter
echo myFuncHasPara First para:%1
echo myFuncHasPara Second para:%2
echo myFuncHasPara Third para:%3
echo myFuncHasPara exit
goto:eof

:myFuncReturnValue_returncannot_be_set
SETLOCAL
echo myFuncReturnValue
echo myFuncReturnValue First para:%1
echo myFuncReturnValue Second para:%2
set "%~1=%2%"
set return=%2
ENDLOCAL

:myFuncReturnValue
::SETLOCAL
echo myFuncReturnValue
echo myFuncReturnValue First para:%1
echo myFuncReturnValue Second para:%2
set "%~1=%2%"
set return=%2
::ENDLOCAL
goto:eof

運行效果圖

函數及其運行結果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM