我有两个批处理脚本:
Batch_A
echo You are in Batch A
call "%~dp0Batch_B.bat" BAR
Run Code Online (Sandbox Code Playgroud)
Batch_B
:FOO
echo You are in Batch A and you have failed.
:BAR
echo You are in Batch A and you have succeeded.
Run Code Online (Sandbox Code Playgroud)
对于我的生活,无论我采用哪种方法进行语法化,第一批中的第2行都不会在Batch_B中调用"BAR"子程序.
我试过它:
call "%~dp0Batch_B.bat BAR"
call "%~dp0Batch_B.bat" :BAR
call "%~dp0Batch_B.bat" %BAR%
call %~dp0Batch_B.bat BAR
Run Code Online (Sandbox Code Playgroud)
什么都行不通.我知道这可能是一些基本的东西,但我做错了什么?还有其他方法可以实现吗?
据我所知,你不能在另一个批处理文件中调用标签.你能做的是以下几点:
在Batch_B.bat中:
Goto %~1
:FOO
echo You are in Batch A and you have failed.
:BAR
echo You are in Batch A and you have succeeded.
Run Code Online (Sandbox Code Playgroud)
并在Batch_A.bat中
call "%~dp0Batch_B.bat" BAR
Run Code Online (Sandbox Code Playgroud)
因此,这将Goto Bar在Batch_B.bat中进行评估,然后转到第二个标签.
除此之外,您应该Goto eof在:FOO零件结束后添加,这样您也不会通过:BAR零件.