Se vuoi eseguire più comandi con 1 linea, dove stai iniziando i comandi con start
, per esempio, se vuoi eseguire un comando come questo:
start "" netsh dump && pause
Allora, devi farlo in 2 passi (la soluzione a una riga è alla fine di questa risposta).
Per prima cosa, scriva i comandi in un file batch temporaneo (in questo caso, può usare &
o &&
):
echo netsh dump ^&^& pause ^&^& exit>foobar.cmd
-or-
echo netsh dump ^& pause ^& exit>foobar.cmd
Si noti che è necessario “sfuggire” a ciascuno degli "&"s
(ampersands) con un "^"
per consentire loro di essere trattati come caratteri ordinari nel comando echo
. In alternativa, è possibile creare il file batch temporaneo con un editor di testo, come Notepad.
Poi, usa start
per avviare il file batch:
start "" foobar.cmd
-or-
start "" "temporary foobar.cmd"
Nota: La coppia vuota di doppi apici è per lo "Title"
che sarà mostrato nella barra del titolo della finestra di comando che start
aprirà. Questo argomento "Title"
è tecnicamente un argomento opzionale per start
, ma è in realtà richiesto , se il comando che start
eseguirà è tra virgolette. Per esempio, nel secondo esempio:
start "" "temporary foobar.cmd"
se lasciate fuori la coppia vuota di doppi apici come questo:
start "temporary foobar.cmd"
allora start
aprirà una nuova finestra di comando, e userà "temporary foobar.cmd"
come nuova finestra di comando "Title"
, e nothing sarà eseguito nella nuova finestra di comando).
Se vuoi che start
aspetti che il file batch sia completato (dopo che pause
è stato respinto), prima che start
completi, allora devi aggiungere lo switch /w
al comando start
:
start "" /w foobar.cmd
Puoi mettere tutto questo insieme su una linea e anche rimuovere (cancellare) il file batch temporaneo (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
Nota che se stai per cancellare il file batch temporaneo, devi eseguire start
con lo switch /w
, altrimenti il file batch temporaneo sarà probabilmente cancellato prima che abbia la possibilità di essere eseguito.