Weird CMD Batch Script Reporting di %Errorlevel %
-
07-11-2019 - |
Domanda
Nello script seguente, quando c'è un errore SQL, %errorlevel%
è 0 - perché è questo?
IF %RELEASE% GTR 2 (
(
echo WHENEVER SQLERROR EXIT FAILURE
echo @release.sql
echo exit
) | sqlplus x/x@orcl
echo error: %errorlevel%
if %errorlevel% gtr 0 goto dberror
)
Se rimuovo il blocco if (sotto) allora % ErrorLevel % è non zero! Perché l'istruzione IF influisce sul livello di errore?
(
echo WHENEVER SQLERROR EXIT FAILURE
echo @release.sql
echo exit
) | sqlplus x/x@orcl
echo error: %errorlevel%
if %errorlevel% gtr 0 goto dberror
Aggiornare: Credi che fosse il modo in cui stavo testando un errore. Penso invece di:
if %errorlevel% gtr 0 goto dberror
.. dovrebbe usare:
if errorlevel 1 goto dberror
Link utile qui
Nessuna soluzione corretta
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow