美文网首页Windows批处理指南
Windows 批处理脚本指南: 函数

Windows 批处理脚本指南: 函数

作者: ettingshausen | 来源:发表于2019-06-12 00:45 被阅读0次

    函数实际上是在任何过程编码语言中重用代码的方法。然而DOS缺乏真正的功能关键字,但是你可以提供过CALL 关键字来实现。

    有两个需要注意的问题:

    1. “函数”需要在脚本的底部通过标签来定义
    2. 脚本的主要逻辑(主函数)需要 EXIT /B [errorcode] 这样可以组织主逻辑进入函数。

    定义一个函数


    在本例中,我们将实现一个简单版的*nix tee[1]实用程序,以将消息写入到文件和stdout流中。我们将在整个脚本中使用一个全局变量,在函数中使用%log%

    @ECHO OFF
    SETLOCAL
    
    :: script global variables
    SET me=%~n0
    SET log=%TEMP%\%me%.txt
    
    :: The "main" logic of the script
    IF EXIST "%log%" DEL /Q %log% >NUL
    
    :: do something cool, then log it
    CALL :tee "%me%: Hello, world!"
    
    :: force execution to quit at the end of the "main" logic
    EXIT /B %ERRORLEVEL%
    
    :: a function to write to a log file and write to stdout
    :tee
    ECHO %* >> "%log%"
    ECHO %*
    EXIT /B 0
    
    

    调用函数


    使用CALL关键字来调用函数。可以传递命令行参数,就像调用另一批处理文件一样。必须记住在结束时EXIT /B关键字。遗憾的是,除了退出代码之外,什么都不能返回。

    返回值


    调用的返回值始终是函数的退出代码。与任何可执行文件的调用一样,调用者读取%ERRORLEVEL%获得退出代码。除了整数返回代码以外,你必须用其他创造性的方式来输出。可以ECHO标准输出,让调用者决定通过将输出连接到另一个可执行文件、重定向到文件或通过FOR命令解析输出。

    调用者也可以通过修改全局变量传递数据,不过,尽量避免这种方法。

    参考资料



    1. tee是一个常见的指令,它能够将某个指令的标准输出,导向、存入某个档案中

    相关文章

      网友评论

        本文标题:Windows 批处理脚本指南: 函数

        本文链接:https://www.haomeiwen.com/subject/ilmhfctx.html