Als je meerdere commando’s wilt uitvoeren met 1 regel, waarbij je de commando’s begint met start
, bijvoorbeeld, als je een commando als dit wilt uitvoeren:
start "" netsh dump && pause
Dan moet je dat in 2 stappen doen (de één-regel oplossing staat aan het eind van dit antwoord).
Eerst schrijf je de commando’s naar een tijdelijk batch bestand (in dit geval kun je &
of &&
gebruiken):
echo netsh dump ^&^& pause ^&^& exit>foobar.cmd
-or-
echo netsh dump ^& pause ^& exit>foobar.cmd
Merk op dat je elk van de "&"s
(ampersands) moet “escapen” met een "^"
zodat ze worden behandeld als gewone karakters in het echo
commando. Als alternatief kun je het tijdelijke batch bestand maken met een tekst editor, zoals Notepad.
Gebruik dan start
om het batchbestand te starten:
start "" foobar.cmd
-or-
start "" "temporary foobar.cmd"
Note: Het lege paar dubbele aanhalingstekens is voor de "Title"
die zal worden getoond in de titelbalk van het opdrachtvenster dat start
zal openen. Dit "Title"
argument is technisch gezien een optioneel argument voor start
, maar het is eigenlijk vereist , als het commando dat start
zal uitvoeren dubbel aanhalingstekens heeft. Bijvoorbeeld, in het tweede voorbeeld:
start "" "temporary foobar.cmd"
als je het lege paar dubbele aanhalingstekens weglaat zoals dit:
start "temporary foobar.cmd"
dan zal start
een nieuw opdrachtvenster openen, en "temporary foobar.cmd"
gebruiken als het nieuwe opdrachtvenster "Title"
, en niets zal worden uitgevoerd in het nieuwe opdrachtvenster).
Als je wilt dat start
wacht tot het batch-bestand klaar is (nadat de pause
is afgewezen), voordat start
klaar is, dan moet je de /w
switch toevoegen aan het start
commando:
start "" /w foobar.cmd
Je kunt dit alles samen op één regel zetten en zelfs het tijdelijke batchbestand verwijderen (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
Merk op dat als je het tijdelijke batchbestand gaat verwijderen, je start
moet uitvoeren met de /w
switch, anders zal het tijdelijke batchbestand waarschijnlijk worden verwijderd voordat het de kans heeft om uit te voeren.