партиден файл на windows Системата не може да намери пакетния етикет указан изход

Имам проблем с пакетен файл и етикети на 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.


person user3432390    schedule 18.03.2014    source източник


Отговори (3)


Конзолата показва грешка, защото изразът GOTO се опитва да премине към етикет, който не съществува.

От това, което мога да разбера от използването на goto exit във вашия скрипт е, че искате скриптът да излезе в този момент. За тази употреба:

GOTO:EOF вместо goto exit.

person r3ap3r    schedule 18.03.2014
comment
Благодаря ви много. Следвах вашето предложение, за да коригирам кода си. Грешката липсва. - person user3432390; 19.03.2014

Това трябва да прави това, което прави вашият код: QQ.exe се стартира 8 пъти - но вашият код използва повторно променливата %i%, така че може да не ви трябва 8 пъти.

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

Имате правилно дефинирани етикети, но неправилно интерпретиран goto синтаксис. Вместо това използвайте "goto :exit". Можете да намерите помощ за пакетна команда, като я изпълните с "/?" в командния ред (като "goto /?" )

person AndreyP    schedule 29.05.2014