il comando goto sposta l'esecuzione del codica ad una determinata etichetta indicata
il codice verrà eseguito da quel punto e se non incontra un altro goto non torenrà più inditro ma eseguirà fino alla fine del codice

sintassi
goto etichetta
....

etichetta:


l'etichetta di default che indica la fine del file :eof anche se non indicata
goto :eof va alla fine del file


si usa soprattutto nelle verifiche IF
dopo una determinata verifica si preosegue lo script ad una determinata etichetta

esempio: se la VARIABILE non esiste settala ciao
if defined VARIABILE goto fine
set VARIABILE=ciao
:fine



il comando permette anche di creare cicli simili al where

sintassi


esempio: calcolo lunghezza array creando un ciclo
@echo off
set Arr[0]=1
set Arr[1]=2
set Arr[2]=3
set Arr[3]=4
set /a x=0

:loop
if defined Arr[%x%] (

call echo %%Arr[%x%]%%
set /a x+=1
goto :loop
)
@echo lunghezza array %x%