¿Cómo puedo llamar a otro script por lotes desde un script por lotes?¿Cómo ejecuto un script por lotes desde un script por lotes?
Quiero que se ejecute en una declaración if
.
¿Cómo puedo llamar a otro script por lotes desde un script por lotes?¿Cómo ejecuto un script por lotes desde un script por lotes?
Quiero que se ejecute en una declaración if
.
Uso CALL
como en
CALL nameOfOtherFile.bat
Esto bloqueará (pausará) la ejecución del archivo por lotes actual, y esperará hasta que finalice el ed CALL
ed.
Si no desea que se bloquee, utilice START
en su lugar.
Obtenga los detalles esenciales mediante CALL /?
o START /?
desde el símbolo del sistema cmd.
+ uno para detallar en CALL/START –
Puede utilizar
call script.bat
o simplemente
script.bat
Si llama directamente a otra secuencia de comandos dentro de su secuencia de comandos, en caso de que algún comando en la secuencia de comandos llamada devuelva un valor distinto de cero (error), la secuencia de comandos de llamada se detendrá para ejecutarse también, donde usando 'llamada', continuará su ejecución incluso con un error en el script llamado. –
Debe utilizar LLAMADA
CALL batch.bat
Aquí es ejemplo:
Tienes a.bat:
@echo off
if exist b.bat goto RUNB
goto END
:RUNB
b.bat
:END
y b.bat llamado condicional a.bat:
@echo off
echo "This is b.bat"
Usted sólo puede invocar el script por lotes por nombre, como si estuvieras corriendo en la línea de comando.
Así, supongamos que tiene un archivo bar.bat
que dice echo This is bar.bat!
y que desea llamar desde un archivo foo.bat
, puede escribir esto en foo.bat
:
if "%1"=="blah" bar
Run foo blah
desde la línea de comandos, y usted' donde puedes:
C:\>foo blah
C:\>if "blah" == "blah" bar
C:\>echo This is bar.bat!
This is bar.bat!
Pero cuidado: Cuando se invoca un script por lotes desde otro archivo por lotes, el lote original scri pt dejará de funcionar. Si desea ejecutar la secuencia de comandos por lotes secundaria y luego regresar a la secuencia de comandos por lotes anterior, deberá usar el comando call
. Por ejemplo:
if "%1"=="blah" call bar
echo That's all for foo.bat!
Si ejecuta foo blah
en que, verías:
C:\>foo blah
C:\>if "blah" == "blah" call bar
C:\>echo This is bar.bat!
This is bar.bat!
C:\>echo That's all for foo.bat!
That's all for foo.bat!
hizo u intentado hacer lo mismo ejecutando de forma remota .......... lo que le pasó a ese ¿en caso afirmativo? – pkm