Se si desidera eseguire più comandi con 1 riga, da cui si stanno avviando i comandi start
, ad esempio, se si desidera eseguire un comando come questo:
start "" netsh dump && pause
Quindi, è necessario farlo in 2 passaggi (la soluzione a una riga è alla fine di questa risposta).
Innanzitutto, scrivi i comandi in un file batch temporaneo (in questo caso, puoi usare &
o &&
):
echo netsh dump ^&^& pause ^&^& exit>foobar.cmd
-or-
echo netsh dump ^& pause ^& exit>foobar.cmd
Si noti che è necessario "sfuggire" a ciascuna delle "&"s
(e commerciali) con a "^"
per consentire loro di essere trattati come normali caratteri nel echo
comando. In alternativa, è possibile creare il file batch temporaneo con un editor di testo, ad esempio Blocco note.
Quindi, utilizzare start
per avviare il file batch:
start "" foobar.cmd
-or-
start "" "temporary foobar.cmd"
Nota: la coppia vuota di virgolette doppie è per quella "Title"
che verrà mostrata nella barra del titolo della finestra di comando che start
si aprirà. Questo "Title"
argomento è tecnicamente un argomento facoltativo per start
, ma è effettivamente richiesto , se il comando che start
verrà eseguito è tra virgolette doppie. Ad esempio, nel secondo esempio:
start "" "temporary foobar.cmd"
se si lascia fuori la coppia vuota di virgolette doppie in questo modo:
start "temporary foobar.cmd"
quindi start
aprirà una nuova finestra di comando e la utilizzerà "temporary foobar.cmd"
come nuova finestra di comando "Title"
, e nulla verrà eseguito nella nuova finestra di comando.)
Se si desidera start
attendere il completamento del file batch (al termine pause
dell'eliminazione), prima del start
completamento, è necessario aggiungere l' /w
opzione al start
comando:
start "" /w foobar.cmd
Puoi mettere tutto insieme su una riga e persino rimuovere (eliminare) 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
Si noti che se si intende eliminare il file batch temporaneo, è necessario eseguire start
con l' /w
opzione, altrimenti il file batch temporaneo verrà probabilmente eliminato prima che abbia la possibilità di essere eseguito.
&
e&&
funziona solo in Windows "cmd.exe
, che non è DOS.