Пакетный файл, выполняющий вторую команду, если первая команда завершается - PullRequest
0 голосов
/ 02 июня 2010

У меня есть пакетный файл, updatesipversion.bat, который вызывает другой пакетный файл, template.bat.

updatesipversion.bat код:

set init=empty
set main=svn propget svn:externals ./3c > install\msbuild\SipBranchDefaultDetailsTemplate.txt 
set error=update
set action=empty

call template.bat "%init%" "%main%" "%error%" "%action%"

set init=empty
set main=install\msbuild\SipBranchDetails.exe
set error=update
set action=empty

call template.bat "%init%" "%main%" "%error%" "%action%"

template.bat код

set /a WAcounter=0
for %%a in (%*) do set /a WAcounter+=1
if not %WAcounter%==4 goto :Error
set WAinit=%1
set WAmain=%2
set WAerror=%3
set WAaction=%4
set /a WAcounter=0

:WAinitCommand
IF NOT %1=="empty" %WAinit:~1,-1%

:WAmainCommand
set /a WAcounter+=1
IF NOT %2=="empty" %WAmain:~1,-1%
if %errorlevel%==0 goto :WASuccess

:WAerrorMsg
IF NOT %3=="empty" echo ERROR in %WAerror:~1,-1% Trying again......
if %WAcounter% equ 10 goto :Finish 
goto :WAmainCommand

:WASuccess
IF NOT %4=="empty" %WAaction:~1,-1%
exit

:Finish
exit 

:Error
echo there must be 4 command line arguments
exit
pause

Когда команда for при первом вызове template.bat вызывает if %errorlevel==0%, она завершается с :WASuccess, если нет - с :Finish.

Второй шаблон времени не вызывается или другая команда не выполняется.

Скажите, пожалуйста, если первая команда завершена, как продолжить выполнение второго вызова шаблона.

Спасибо

1 Ответ

1 голос
/ 02 июня 2010

Вы должны использовать либо start вместо call, либо использовать exit /B или goto :eof из вызываемой партии. См. это для справки .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...