Parece que contiene una secuencia de comandos cmd:cmd.exe: cuándo utilizar llamada a ejecutar programas externos
prog1
prog2
hace lo mismo que
call prog1
call prog2
¿Cuál es el punto de utilizar el comando CALL ?
Parece que contiene una secuencia de comandos cmd:cmd.exe: cuándo utilizar llamada a ejecutar programas externos
prog1
prog2
hace lo mismo que
call prog1
call prog2
¿Cuál es el punto de utilizar el comando CALL ?
Debe usar call
cuando necesite llamar a otro programa por lotes (script cmd). El uso de 'call' no tendrá efecto si prog1
es un archivo ejecutable. (prog1.exe
)
Si, por ejemplo, tiene dos guiones:
cmd1.cmd
cmd2.cmd
Y dentro cmd1.cmd
dispone de una línea:
cmd2.cmd
... entonces la secuencia de comandos se detendrá tan pronto como sea cmd2.cmd
ha terminado de ejecutarse. En su lugar debe usar:
call cmd2.cmd
Aha - entonces la distinción entre ejecutables externos y scripts cmd externos es la clave.Gracias por la iluminación – Martin
Normalmente, la llamada se usa para ejecutar otro archivo por lotes dentro de un archivo por lotes. Cuando se completa el archivo por lotes que se llama, se completa el resto del archivo por lotes original.
Nota: si el archivo por lotes no existe, aparecerá un mensaje de error.
sintaxis es: CALL [drive:][path]filename [batch-parameters]
No hay restricción en donde llamarlo. Puede usar el comando CALL en cualquier archivo por lotes para llamar a otro archivo por lotes.
Espero que esto ayude.
Se debe utilizar cuando sea call
desea:
Un archivo de comandos con la línea:
number2.cmd
se cadena en el fichero de number2.cmd
, lo que significa que se ejecutará el guión, pero no volver a continuar con la ejecución de la actual.
En cuanto al segundo punto, puede hacer cosas como:
call :subroutine
call :subroutine
goto :eof
:subroutine
echo in here
goto :eof
y obtendrá in here
impresa dos veces. Esta capacidad de invocar funciones dentro de scripts de comando es bastante útil.
+1 - La función de subrutina parece muy útil. – Martin
@paxdiablo, ¿Qué quiere decir con "* cadena * al archivo' number2.cmd'? – Pacerier
@Pacerier, quise decir que no volverá al guión actual cuando termine, una frase a la que me he aferrado desde mis días de programación BASIC hace muchas décadas :-) Consulte https://en.m.wikipedia.org/wiki/Chain_loading para más detalles. Espero haber dejado eso más claro con la edición. – paxdiablo
Pertenece al superusuario. – leppie
Ver http://stackoverflow.com/q/1103994/632951 tiene mejores respuestas. – Pacerier