en un archivo por lotes cmd, encontré la siguiente línea
call sqlcmd -S .\SQLEXPRESS -d main_dev -i create.sql
¿Cuál es el propósito de usar call
aquí?
Estoy leyendo https://ss64.com/nt/call.html , pero no puedo entender qué caso en el enlace se aplica aquí.
¿Podemos simplemente ejecutar el comando sin call
, es decir
sqlcmd -S .\SQLEXPRESS -d main_dev -i create.sql
Estoy acostumbrado a Bash. ¿Hay algún comando similar en Bash o Linux call
en cmd?
Gracias.
call
en cmd?call
significa que volverá después y continuará con el archivo por lotes original. Si omitecall
, se encadenará al archivo y no regresará.bash
: un script llamado siempre regresa. Si quieres encadenar sin volver, úsaloexec
.source script.sh
o. script.sh
hará que se ejecute un archivo de secuencia de comandos dentro del mismo contexto que la secuencia de comandos en la que se produce, mientras que de forma predeterminada una secuencia de comandos iniciada desde dentro de una secuencia de comandos se ejecutará con su propio stdin / out / err, etc.Respuestas:
Debería examinar el archivo por lotes en el
call
que se encuentra la declaración. Normalmente, unacall
declaración por lotes significa que el archivo por lotes que llama debe hacer más, por lo que el archivo por lotes llamado debe devolver el control al archivo por lotes que llama. Si se va a realizar el cambio de preguntar acerca de,sqlcmd
que no devolverá el control al archivo por lotes llamado, y nada después de que no se presentaría.fuente
call
en cmd?