windows批处理文件系统找不到指定的批处理标签,请退出

windows批处理文件系统找不到指定的批处理标签,请退出,windows,batch-file,cmd,Windows,Batch File,Cmd,DOS批处理文件和标签有问题。我不断地发现这个错误: 同一文件夹中有两个批处理文件(QQ.bat和Calling.bat) QQ.bat的代码: @echo off set /a i=0 :loop set /a i=i+1 echo %i% c: cd \Users cd mytool cd QQ cd Bin QQ.exe if "%i%"=="2" goto exit goto loop Calling.bat的代码: @echo off set/a i=0 :loop set/a i

DOS批处理文件和标签有问题。我不断地发现这个错误: 同一文件夹中有两个批处理文件(QQ.bat和Calling.bat)

QQ.bat的代码:

@echo off
set /a i=0
:loop
set /a i=i+1
echo %i%
c:
cd \Users
cd mytool
cd QQ
cd Bin
QQ.exe
if "%i%"=="2" goto exit 
goto loop
Calling.bat的代码:

@echo off
set/a i=0
:loop
set/a i=i+1
start /b cmd /c QQ.bat
if "%i%"=="4"  exit
goto loop
pause

控制台输出“系统找不到指定的批次标签-退出”,随机执行severl QQ.exe,数量不正确,而我的预期结果是同时执行8个QQ.exe

控制台显示错误,因为GOTO语句试图跳转到不存在的标签

通过在脚本中使用goto exit,我可以理解,您希望脚本在该点退出。为此目的:


GOTO:EOF
而不是
GOTO exit

这应该做你的代码正在做的事情:
QQ.exe
被启动
8次-但是你的代码正在重用
%i%
变量,所以你可能不需要它8次

@echo off
for /L %%a in (1,1,8) do start "" /d "c:\Users\mytool\QQ\Bin" "QQ.exe"

您正确定义了标签,但错误地解释了goto语法。改为使用“转到:退出”。通过在命令行中使用“/”执行批处理命令(如“goto/?”)

可以找到有关批处理命令的帮助。非常感谢。我按照您的建议修复了代码。错误已丢失。