0

これについて徹底的な検索を行いましたが、すべての部分を一緒に見つけることはできません。

私は持っている:

BatchA runs for loop
   Calls BatchB
      BatchB runs a SQL script
         SQL Script raises error
      BatchB gets error, does (exit /b %ErrorLevel%)
   Batch A checks for error

BatchA がバッチ B の終了エラーに応答する最後のステップを機能させることができません。

私はそれを単純化しましたが、以下を機能させることさえできません。動作しないとは、GOTO ステートメントが実行されないことを意味します。バッチで for ループが嫌い!!!!

バッチA

setlocal enabledelayedexpansion
FOR /L %%i IN (0,1,0) DO (

:: Define variables
CALL SET TEST_NAME=%%TESTS[%%i]%%
CALL SET D_TEST=%%D_TESTS%%\%%TEST_NAME%%
CALL SET D_DB_RAW=%%D_TEST%%
CALL SET P_TEST=%%D_TEST%%\%%TEST_NAME%%.bat

:: Run preparation script
CALL ECHO. && ECHO.
CALL ECHO [INFO] TEST: %%TEST_NAME%%
CALL ECHO ----------------------------------------------------------
CALL ECHO [INFO] PREPARING THE DATABASE
CALL PUSHD %%D_PRE_TEST%%
CALL %%P_PRE_TEST_BAT%% %%D_DB%% %%D_DB_RAW%%
CALL POPD
CALL SET ERR_MSG="Error preparing the database before test: %%TEST_NAME%%"
if !ERRORLEVEL! NEQ 0 GOTO L_ERROR

バッチB

EXIT /b 1
4

0 に答える 0