批处理文件:返回给调用者?

Posted

技术标签:

【中文标题】批处理文件:返回给调用者?【英文标题】:Batch File: Return to caller? 【发布时间】:2011-10-07 09:45:32 【问题描述】:

批处理文件子例程的return 语句等效于什么?

【问题讨论】:

【参考方案1】:

它是:

goto :eof

这对于习惯于普通编程语言的人来说是可以理解的。

我找到了这个信息here。

【讨论】:

嗯。我一直认为您必须在文件末尾手动定义 :eof 标签,但显然它是隐式定义的。每天学习新东西。 @Greg: ... wtf?哈哈,谢谢你的信息,+1。 :) 顺便说一句,您是否知道如何过早地跳出for 循环? @Mehrdad:我不知道,但可能还涉及到goto FOR /L 循环不能这样中断,所有迭代都在goto 之后展开(但不执行) 小提示:要让它工作,你必须使用call :SubroutineLabelName 而不是goto SubroutineLabelName【参考方案2】:

我认为是:

exit /b [exitCode]

不仅因为它更易于使用,还因为 exit /b(也只是 exit)可能会向调用程序返回一个 exitCode (ERRORLEVEL) 值。

在我看来,goto :eof 是一个不应该使用的奇怪补丁......

【讨论】:

+1,但exit /b 似乎是带有错误级别的goto :eof,如果您尝试使用exit /bsetlocal DisableExtensions 则可见 是的,我测试了你所说的(有趣的事情!),但我的意思是:如果 EXIT /B 有效并且不会像 GOTO :EOF 那样混淆,为什么要使用 GOTO :EOF (甚至提到它)?如果该答案是 EXIT /B,则上述第一个答案及其前两个 cmets 中的解释甚至都不存在 不知道我是怎么错过这个聚会的——我同意,出于可读性原因(加上附加功能), EXIT /B 比 GOTO :EOF 好得多。不幸的是,批处理世界一直坚持使用神秘的 GOTO :EOF,并且这种做法传播开来,因为新手看到了所有旧示例。 @dbenham:是的,类似于使用echo. 插入空行... :(【参考方案3】:
Goto :Eof

Exit

Goto :Eof 通常在调用命令中使用 如:

@echo off
call :Hi
pause&exit
:hi
echo Hello!
goto :eof 

【讨论】:

以上是关于批处理文件:返回给调用者?的主要内容,如果未能解决你的问题,请参考以下文章

接口项目servlet的一种处理方式,将异常返回给调用者我

jQuery Ajax:返回值给调用者?

python 异常处理

带有redis的节点js没有返回给调用者

java函数的笔记

自定义异常将工具类的错误抛给调用者servlet,将原本的控制界面跳转工作交还给servlet