【发布时间】:2017-10-17 15:07:53
【问题描述】:
我一直在看一些关于如何在另一个批处理文件(即Call a subroutine in a batch from another batch file)中调用子程序的示例,但不知何故,外部批处理文件以常规方式执行,即从头到尾,使用被调用的函数忽略/跳过。
我认为这与外部批处理文件中的空格有关:
:: main batch file.cmd where the subroutine is called from
CALL "second batch file.cmd" :SUBROUTINE
goto :EOF
和
:: second batch file.cmd contents
ECHO IGNORE THIS
goto :EOF
:SUBROUTINE
ECHO SUBROUTINE CALLED FROM 'main batch file.cmd'!
goto :EOF
这不是应该工作吗?对我来说不是:/
【问题讨论】:
-
我认为您混淆了一些概念。这一行:
CALL "second batch file.cmd" :SUBROUTINE表示调用一个名为“第二个批处理文件.cmd”的外部批处理文件,并在第一个参数中传递了:SUBROUTINE字符串。像往常一样,这样的字符串可以通过%1字符进入被调用的批处理文件中。批处理文件的第一个参数与此类文件中的:SUBROUTINE标签没有关系,除非您使用goto %1命令启动调用的批处理文件。见stackoverflow.com/questions/11576270/… -
现在一切都说得通了。谢谢你的解释,Aacini :-)
标签: batch-file call subroutine spaces