Não tenho certeza se você precisa de ELSE, muito menos de um IF aninhado, para seu caso de uso:
@echo off
IF NOT "%1%"=="0" (
goto proc3
)
IF "%2%"=="0" (
goto proc1
)
goto proc2
:proc1
echo in Proc1 0 0
pause
exit
:proc2
echo in Proc2 0 N0
pause
exit
:proc3
echo in Proc3 N0 0
pause
exit
Se, por algum motivo, você realmente quiser aninhar seus IFs, não terá um colchete:
Seu lote:
IF %1% == 0 ( IF %2% == 0 ( goto proc1 ) ELSE ( goto proc2 ) ***MISSING )*** ELSE ( goto proc3 )
Lote que deve funcionar:
IF "%1%" == "0" (
IF "%2%" == "0" (
goto proc1
) ELSE (
goto proc2
)
) ELSE (
goto proc3
)