Si desea ejecutar múltiples comandos con 1 línea, donde está comenzando los comandos con start, por ejemplo, si desea ejecutar un comando como este:
start "" netsh dump && pause
Luego, debe hacerlo en 2 pasos (la solución de una línea se encuentra al final de esta respuesta).
Primero, escriba los comandos en un archivo por lotes temporal (en este caso, puede usar &o &&):
echo netsh dump ^&^& pause ^&^& exit>foobar.cmd
-or-
echo netsh dump ^& pause ^& exit>foobar.cmd
Tenga en cuenta que debe "escapar" de cada uno de los "&"s(símbolos de unión) con un "^"
para permitir que sean tratados como caracteres ordinarios en el echocomando. Alternativamente, puede crear el archivo por lotes temporal con un editor de texto, como el Bloc de notas.
Luego, use startpara iniciar el archivo por lotes:
start "" foobar.cmd
-or-
start "" "temporary foobar.cmd"
Nota: El par vacío de comillas dobles es para el "Title"que se mostrará en la barra de título de la ventana de comandos que startse abrirá. Este "Title"argumento es técnicamente un argumento opcional para start, pero en realidad es obligatorio , si el comando que startse ejecutará está entre comillas dobles. Por ejemplo, en el segundo ejemplo:
start "" "temporary foobar.cmd"
si omite el par vacío de comillas dobles como este:
start "temporary foobar.cmd"
luego startse abrirá una nueva ventana de comandos y se usará "temporary foobar.cmd"como la nueva ventana de comandos "Title", y nada se ejecutará en la nueva ventana de comandos)
Si desea startesperar a que se complete el archivo por lotes (después de que pausese descarta), antes de que se startcomplete, debe agregar el /winterruptor al startcomando:
start "" /w foobar.cmd
Puede poner todo esto junto en una línea e incluso eliminar (eliminar) el archivo por lotes temporal ( 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 eliminar el archivo por lotes temporal, debe ejecutarlo startcon el /winterruptor; de lo contrario, el archivo por lotes temporal probablemente se eliminará antes de que pueda ejecutarse.
&y&&solo funciona en Windows 'cmd.exe, que no es DOS.