Batch file 在另一个文件名中有空格的批处理文件中调用子例程?

Batch file 在另一个文件名中有空格的批处理文件中调用子例程?,batch-file,call,subroutine,spaces,Batch File,Call,Subroutine,Spaces,我一直在看一些关于如何在另一个批处理文件(例如)中调用子例程的示例,但是不知何故,外部批处理文件是以常规方式执行的,即从头到尾,被调用的函数被忽略/跳过 我认为这与外部批处理文件中的空格有关: :: main batch file.cmd where the subroutine is called from CALL "second batch file.cmd" :SUBROUTINE goto :EOF IF "%1"==":SUBROUTINE" GOTO :SUBROUTINE 及

我一直在看一些关于如何在另一个批处理文件(例如)中调用子例程的示例,但是不知何故,外部批处理文件是以常规方式执行的,即从头到尾,被调用的函数被忽略/跳过

我认为这与外部批处理文件中的空格有关:

:: main batch file.cmd where the subroutine is called from
CALL "second batch file.cmd" :SUBROUTINE
goto :EOF
IF "%1"==":SUBROUTINE" GOTO :SUBROUTINE


这不应该有用吗?对我来说,它不是://p>作为第二批文件的第一行输入:

:: main batch file.cmd where the subroutine is called from
CALL "second batch file.cmd" :SUBROUTINE
goto :EOF
IF "%1"==":SUBROUTINE" GOTO :SUBROUTINE

作为第二批文件的第一行输入:

:: main batch file.cmd where the subroutine is called from
CALL "second batch file.cmd" :SUBROUTINE
goto :EOF
IF "%1"==":SUBROUTINE" GOTO :SUBROUTINE

我想你把一些概念弄混了。此行:
调用“second batch file.cmd”:子例程
意味着调用名为“second batch file.cmd”的外部批处理文件,并在第一个参数中传递
:子例程
字符串。像往常一样,可以通过
%1
字符在被调用的批处理文件中获取这样的字符串。批处理文件的第一个参数与该文件中的
:子例程
标签无关,除非使用
goto%1
命令启动调用的批处理文件。看,现在一切都有意义了。谢谢你的解释,阿奇尼:-)我想你把一些概念搞混了。此行:
调用“second batch file.cmd”:子例程
意味着调用名为“second batch file.cmd”的外部批处理文件,并在第一个参数中传递
:子例程
字符串。像往常一样,可以通过
%1
字符在被调用的批处理文件中获取这样的字符串。批处理文件的第一个参数与该文件中的
:子例程
标签无关,除非使用
goto%1
命令启动调用的批处理文件。看,现在一切都有意义了。感谢您的解释,Aacini:-)我在一些批处理文件中使用了此方法,但假设它也可以使用上面显示的方法工作。因为你给出了一个有效的例子,所以我将你的答案标记为解决方案。谢谢thx1138v2;-)我已经在我的一些批处理文件中使用了这个方法,但是假设它也可以使用我上面展示的方法。因为你给出了一个有效的例子,所以我将你的答案标记为解决方案。谢谢thx1138v2;-)