Nuestros mejores programadores han agotado sus provisiones de café, por su búsqueda noche y día por la solución, hasta que Alexis halló la contestación en Bitbucket así que en este momento la compartimos aquí.
Solución:
Así en todos los sistemas operativos de Microsoft desde 2000, y sigue siendo bueno hoy en día:
dir & echo foo
Si desea que el segundo comando se ejecute solo si el primero salió correctamente:
dir && echo foo
La sintaxis de un solo ampersand (&) para ejecutar varios comandos en una línea se remonta a Windows XP, Windows 2000 y algunas versiones anteriores de NT. (4.0 al menos, según un comentarista aquí).
Hay bastantes otros puntos sobre esto que encontrará al desplazarse hacia abajo en esta página.
Los datos históricos siguen, para aquellos que puedan encontrarlo educativo.
Antes de eso, la sintaxis && era solo una característica del 4DOS de reemplazo de shell antes de que esa característica se agregara al intérprete de comandos de Microsoft.
En Windows 95, 98 y ME, usaría el carácter de tubería en su lugar:
dir | echo foo
En MS-DOS 5.0 y posteriores, a través de algunas versiones anteriores de Windows y NT del intérprete de comandos, el separador de comandos (no documentado) era el carácter 20 (Ctrl+T) que representaré con ^T aquí.
dir ^T echo foo
Una cita de la documentación:
- Fuente: Microsoft, documentación del producto profesional de Windows XP, Descripción general del shell de comandos
- También: un índice AZ de los comandos CMD de Windows
Uso de múltiples comandos y símbolos de procesamiento condicional
Puede ejecutar varios comandos desde una sola línea de comando o secuencia de comandos utilizando símbolos de procesamiento condicional. Cuando ejecuta varios comandos con símbolos de procesamiento condicional, los comandos a la derecha del símbolo de procesamiento condicional actúan según los resultados del comando a la izquierda del símbolo de procesamiento condicional.
Por ejemplo, es posible que desee ejecutar un comando solo si falla el comando anterior. O bien, es posible que desee ejecutar un comando solo si el comando anterior se ejecuta correctamente.
Puede utilizar los caracteres especiales enumerados en la siguiente tabla para pasar varios comandos.
& [...]
command1 & command2
Úselo para separar varios comandos en una línea de comando. Cmd.exe ejecuta el primer comando y luego el segundo comando.
&& [...]
command1 && command2
Úselo para ejecutar el comando que sigue a && solo si el comando que precede al símbolo tiene éxito. Cmd.exe ejecuta el primer comando y luego ejecuta el segundo comando solo si el primer comando se completó correctamente.
|| [...]
command1 || command2
Úselo para ejecutar el siguiente comando || solo si el comando que precede a || falla Cmd.exe ejecuta el primer comando y luego ejecuta el segundo comando solo si el primer comando no se completó correctamente (recibe un código de error mayor que cero).
( ) [...]
(command1 & command2)
Utilícelo para agrupar o anidar varios comandos.
; or ,
command1 parameter1;parameter2
Úselo para separar los parámetros del comando.
&
es el equivalente de Bash para ;
(ejecutar comandos) y &&
es el equivalente de Bash de &&
(ejecutar comandos solo cuando el anterior no haya causado un error).
valoraciones y comentarios
Puedes añadir valor a nuestra información asistiendo con tu veteranía en las interpretaciones.