Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 批处理bat1.bat调用bat2.bat中的外部函数_Function_Batch File_Call_External - Fatal编程技术网

Function 批处理bat1.bat调用bat2.bat中的外部函数

Function 批处理bat1.bat调用bat2.bat中的外部函数,function,batch-file,call,external,Function,Batch File,Call,External,我想要两个bat文件 BAT1:函数列表 BAT2:调用BAT1中的一个特定函数 BAT1: @echo off :ALPHA echo ALPHA goto end :BETA echo BETA goto end :end pause

我想要两个bat文件

  • BAT1:函数列表
  • BAT2:调用BAT1中的一个特定函数
BAT1:

@echo off              
:ALPHA                
echo ALPHA             
goto end            

:BETA            
echo BETA                        
goto end            

:end            
pause            
@echo off 
goto %1             
:ALPHA                
echo ALPHA             
goto end            

:BETA            
echo BETA                        
goto end            

:end            
pause            
BAT2:

@echo off             
call bat1.bat             
goto BETA                        
@echo off             
call bat1.bat BETA           
echo returned
这显然是行不通的。我尝试了一些其他的改变,但没有结果

BAT1:返回ALPHA,从不返回BETA。
我要做的是运行BAT2,它将在BAT1中调用BETA


如果你认为这是可能的,请帮助我。我在internet上找不到其他解决方案,比如如何调用外部文件中的值。但这并不能解决我的问题。

调用bat1时使用参数。然后在bat1中检查输入参数并转到所需的标签。

调用bat1时使用参数。然后在bat1中检查输入参数并转到所需的标签。

@July Mixer:基本上它是这样工作的:

BAT1:

@echo off              
:ALPHA                
echo ALPHA             
goto end            

:BETA            
echo BETA                        
goto end            

:end            
pause            
@echo off 
goto %1             
:ALPHA                
echo ALPHA             
goto end            

:BETA            
echo BETA                        
goto end            

:end            
pause            
BAT2:

@echo off             
call bat1.bat             
goto BETA                        
@echo off             
call bat1.bat BETA           
echo returned
%1
是给定的第一个参数(aka参数)。(在这种情况下,
BETA

编辑向BAT1添加一些错误处理:

@echo off
if not "%1"=="" findstr /i /x /c:":%1" %~df0 >nul 2>&1 &&goto %1
echo wrong parameter
exit /b

:alpha 
echo Alpha
goto :eof

:beta 
echo Beta
goto :eof

@July Mixer:基本上是这样工作的:

BAT1:

@echo off              
:ALPHA                
echo ALPHA             
goto end            

:BETA            
echo BETA                        
goto end            

:end            
pause            
@echo off 
goto %1             
:ALPHA                
echo ALPHA             
goto end            

:BETA            
echo BETA                        
goto end            

:end            
pause            
BAT2:

@echo off             
call bat1.bat             
goto BETA                        
@echo off             
call bat1.bat BETA           
echo returned
%1
是给定的第一个参数(aka参数)。(在这种情况下,
BETA

编辑向BAT1添加一些错误处理:

@echo off
if not "%1"=="" findstr /i /x /c:":%1" %~df0 >nul 2>&1 &&goto %1
echo wrong parameter
exit /b

:alpha 
echo Alpha
goto :eof

:beta 
echo Beta
goto :eof

好的,我已经找到了,谢谢你的快速回答。有了一个论点,它就完美地工作了。谢谢!好的,我已经找到了,谢谢你的快速回答。有了一个论点,它就完美地工作了。谢谢!我希望
如果不是“$1”==”转到%1
如果不是“%1”==”转到%1
是正确的。当然可以。所以我写了“基本上”。是的,只是添加了一些东西。你有我的+1。我希望
如果不是“$1”==“转到%1
如果不是“%1”==“转到%1
是正确的。当然可以。所以我写了“基本上”。是的,只是添加了一些东西。你有我的+1。