Si quieres ejecutar múltiples comandos con 1 línea, donde estás comenzando los comandos con start
, por ejemplo, si quisieras ejecutar un comando como este
start "" netsh dump && pause
Entonces, necesitas hacerlo en 2 pasos (la solución de una línea está al final de esta respuesta).
En primer lugar, escriba los comandos en un archivo temporal por lotes (en este caso, puede utilizar &
o &&
):
echo netsh dump ^&^& pause ^&^& exit>foobar.cmd
-or-
echo netsh dump ^& pause ^& exit>foobar.cmd
Tenga en cuenta que debe “escapar” cada uno de los "&"s
(ampersands) con un "^"
para que sean tratados como caracteres ordinarios en el comando echo
. También puede crear el archivo temporal por lotes con un editor de texto, como el Bloc de notas.
A continuación, utilice start
para iniciar el archivo por lotes:
start "" foobar.cmd
-or-
start "" "temporary foobar.cmd"
Nota: El par de comillas vacías es para el "Title"
que se mostrará en la barra de título de la ventana de comandos que start
abrirá. Este argumento "Title"
es técnicamente un argumento opcional para start
, pero en realidad es requerido , si el comando que start
ejecutará está entre comillas dobles. Por ejemplo, en el segundo ejemplo:
start "" "temporary foobar.cmd"
si se omite el par de comillas dobles vacías así
start "temporary foobar.cmd"
entonces start
abrirá una nueva ventana de comandos, y utilizará "temporary foobar.cmd"
como la nueva ventana de comandos "Title"
, y nada se ejecutará en la nueva ventana de comandos).
Si quiere que start
espere a que el archivo por lotes se complete (después de que el pause
sea despedido), antes de que start
se complete, entonces necesita añadir el interruptor /w
al comando start
:
start "" /w foobar.cmd
Puede poner todo esto junto en una línea e incluso eliminar (borrar) el archivo temporal por lotes (foobar.cmd
):
echo netsh dump ^&^& pause ^&^& exit>foobar.cmd && start "" /w foobar.cmd && del foobar.cmd
-or-
echo netsh dump ^& pause ^& exit>foobar.cmd & start "" /w foobar.cmd & del foobar.cmd
Tenga en cuenta que si va a borrar el archivo temporal por lotes, necesita ejecutar start
con el interruptor /w
, de lo contrario, el archivo temporal por lotes probablemente se borrará antes de que tenga la oportunidad de ejecutarse.