segundo por plano otro manejo lotes ejemplos ejecutar desde comandos codigos batch bat automaticamente archivos archivo windows batch-file command-line cmd simultaneous

plano - Una sola línea con múltiples comandos usando el archivo por lotes de Windows



manejo de variables en batch (1)

& entre dos comandos simplemente resulta en la ejecución de ambos comandos independientemente del resultado del primer comando. El comando a la derecha de & se ejecuta después del comando dejado de & terminado independientemente en caso de éxito o error del comando anterior, es decir, independiente en el valor de salida / retorno del comando anterior.

&& da como resultado una ejecución condicional del segundo comando. El segundo comando se ejecuta solo si el primer comando fue exitoso, lo que significa que salió con el código de retorno 0.

Para una explicación alternativa, ver Ejecución condicional .

dir & md folder1 & rename folder1 mainfolder

es por lo tanto igual

dir md folder1 rename folder1 mainfolder

Un reemplazo multilínea para

dir && md folder1 && rename folder1 mainfolder

sería

dir if not errorlevel 1 ( md folder1 if not errorlevel 1 ( rename folder1 mainfolder ) )

if not errorlevel 1 significa que el comando before no terminó con un código de salida mayor a 0 . Como los comandos dir y md nunca salen con un valor negativo, solo con 0 o mayor (como casi todos los comandos y aplicaciones de consola) y el valor 0 es el código de salida para el éxito, este es un método correcto para probar la ejecución exitosa de dir y md . Consulte el artículo de soporte de Microsoft Prueba para un nivel de error específico en archivos por lotes .

Otros temas útiles sobre desbordamiento de pila sobre errorlevel:

Para la respuesta a su tercera pregunta, consulte mi respuesta sobre ¿Cómo llamar a un archivo por lotes en la carpeta principal del archivo por lotes actual? donde he explicado las diferencias al ejecutar un archivo por lotes con una call comando o con start o con ninguno de esos 2 comandos dentro de un archivo por lotes.

Intento entender cómo funcionan múltiples comandos en una sola línea de comando en un archivo por lotes.

dir & md folder1 & rename folder1 mainfolder

Y otro caso con comandos similares, pero & sustituido por && .

dir && md folder1 && rename folder1 mainfolder

1. ¿Cuál es la diferencia entre estos dos casos?

Otra cosa que quiero preguntar:

One-liner batch.bat :

dir & md folder1 & rename folder1 mainfolder

Multi-liner batch.bat :

dir md folder1 rename folder1 mainfolder

2. ¿Son estos de una sola línea y multi-línea iguales en términos de procedimiento de archivo por lotes?

Y una cosa más que me gustaría saber:

3. Si llamo a otros archivos por lotes desde main.bat, ¿se ejecutan de manera independiente y simultánea? ¿El archivo principal por lotes no espera para finalizar los procedimientos en otros archivos por lotes? ¿Como hacer eso?