调用函数后命令错误

时间:2016-09-19 09:35:26

标签: batch-file

我已经编写了一个小批量测试脚本:

start
errorcheck: "test"
end
main
end

输出:

let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT
dispatch_async(dispatch_get_global_queue(priority, 0)) {
    // Get data from db
    dispatch_async(dispatch_get_main_queue()) {
        // update the cell (Make all UI operations here)
    }
}

我想调用函数errorcheck然后转到exit而不输入" main"部分。但剧本又回到了主要的"部分。怎么了?

1 个答案:

答案 0 :(得分:1)

您不能使用子功能执行此操作,它将始终返回。

结束子功能的常用语法是goto :eof,它隐含在脚本的末尾(在echo end之后)。即使exit 0也会返回调用代码。

您需要检查某些条件,然后在主代码中的exit之后结束您的程序(例如,使用goto :eofcall)以避免第二个“结束“输出。

例如:

echo start
call:errorcheck "test"
if errorlevel 1 exit /b 1
echo main
goto exit

:errorcheck
echo errorcheck: %1
if <some error condition> exit 1
exit 0

:exit
echo end