Operador combinador && multilínea para encadenamiento de comandos en un archivo por lotes

Operador combinador && multilínea para encadenamiento de comandos en un archivo por lotes

Veoque este operador se usa en Windows (¿y podría ser Linux?) para encadenar/combinar múltiples comandos en una línea. Los comandos se ejecutan uno tras otro, siempre que el anterior se complete correctamente (código de salida 0).

Sin embargo, no entiendo si se puede utilizar en un archivo por lotes, donde se especifican comandos uno tras otro, un comando por línea. ¿Cómo se consigue el mismo efecto en este caso?¿Cómo se divide cmd1 && cmd2 && cmd3en varias líneas?? ¿Cómo se termina?

cmd1
cmd2
cmd3

tan pronto como falla el primer comando?

También me gustaría saber el nombre del operador para poder encontrar yo mismo la respuesta a preguntas como ésta más adelante.

Respuesta1

cmd1 && cmd2 && cmd3

se puede escribir en varias líneas como

cmd1
if not errorlevel 1 cmd2
if not errorlevel 1 cmd3

donde cada ejecución de comando dependerá del resultado de la anterior

Respuesta2

En GNU/Linux puedo dividir el comando cmd1 && cmd2 && cmd3en varias líneas (por ejemplo, para facilitar la lectura) en un archivo de script como este:

cmd1 &&
cmd2 &&
cmd3

Respuesta3

La diferencia entre ellos es:

cmd1
cmd2
cmd3

activará cada comando individualmente y permitirá la finalización del trabajo por lotes si presiona Ctrl+ cantes de que finalice.

Mientras

cmd1 && cmd2 && cmd3

lanzará los comandos uno tras otro, pero sin mirar el script/de una sola vez.

Para más ejemplo,

Tome el primer ejemplo, si edita el script mientras cmd1 se está ejecutando y cambia cmd2 a cmd3, cargará cmd3 cuando cmd1 haya terminado.

En Linux, si lo hago, ifdown eth0perderé mi sesión ssh, así que encadeno ifdown eth0 && ifup eth0los comandos.

Si desea hacer algo con respecto a los errores, debe consultar las declaraciones if y los cambios junto con los códigos de retorno y los niveles de error.enlace.

Respuesta4

Para archivos por lotes, necesita agregar un delimitador ^ después de cada operación condicional && (o ||). Por ejemplo:

echo 1 && ^
echo 2 && ^
copy >null && ^
echo 4

información relacionada