batch file - off - Uso de CALL para etiquetas en una secuencia de comandos por lotes
echo off bat (2)
Cuando se utiliza el comando CALL para llamar a una etiqueta en un script por lotes, y se finaliza la sub-rutina con GOTO: eof, ¿qué sucede desde allí? ¿Vuelve al lugar donde se encuentra CALL de la sub-rutina? ¿O continúa después de la ubicación de la secuencia de comandos de llamada?
Por ejemplo:
ECHO It''s for my college fund.
CALL :OMGSUB
ECHO *runs away and cries like a little girl*
:OMGSUB
ECHO Your mom goes to college.
GOTO:eof
ECHO *picks up jewelry box*
Después de GOTO: ¿de qué línea se repetirá?
¿Por qué no simplemente ejecutarlo y ver por ti mismo? Guardé su script en un archivo de proceso por lotes llamado foo.bat, y cambié el programa. Tu madre va a la universidad para tener un echo
en el frente.
C:/temp>foo
C:/temp>ECHO It''s for my college fund.
It''s for my college fund.
C:/temp>CALL :OMGSUB
C:/temp>echo Your mom goes to college.
Your mom goes to college.
C:/temp>GOTO:eof
C:/temp>ECHO *runs away and cries like a little girl*
*runs away and cries like a little girl*
C:/temp>echo Your mom goes to college.
Your mom goes to college.
C:/temp>GOTO:eof
C:/temp>
Entonces, es fácil ver que después de que se llama OMGSUB
,
- Va al final del archivo.
- Luego vuelve a la línea justo después de la
CALL :OMGSUB
y echos la línea "huye" - Luego vuelve a escuchar la línea Your Mom
- El va al final del archivo y termina
- El eco recoge la línea de caja de jewewlry nunca se alcanza.
goto: eof finaliza el ''script OMGSUB'' en su archivo por lotes. asi que
*runs away and cries like a little girl*
se repetirá el próximo.