Jeśli chcesz wykonać wiele poleceń w 1 linii, gdzie zaczynasz polecenia od start
, na przykład, jeśli chciałeś wykonać polecenie w ten sposób:
start "" netsh dump && pause
Wtedy musisz to zrobić w 2 krokach (rozwiązanie jednolinijkowe jest na końcu tej odpowiedzi).
Najpierw zapisz polecenia do tymczasowego pliku wsadowego (w tym przypadku możesz użyć &
lub &&
):
echo netsh dump ^&^& pause ^&^& exit>foobar.cmd
-or-
echo netsh dump ^& pause ^& exit>foobar.cmd
Zauważ, że musisz “uciec” od każdego z "&"s
(ampersands) za pomocą "^"
, aby były one traktowane jako zwykłe znaki w poleceniu echo
Alternatywnie możesz utworzyć tymczasowy plik wsadowy za pomocą edytora tekstu, takiego jak Notatnik.
Następnie użyj start
, aby uruchomić plik wsadowy:
start "" foobar.cmd
-or-
start "" "temporary foobar.cmd"
Uwaga: Pusta para podwójnych cudzysłowów jest przeznaczona dla argumentu "Title"
, który będzie widoczny na pasku tytułowym okna poleceń, które start
otworzy. Ten argument "Title"
jest technicznie opcjonalnym argumentem dla start
, ale w rzeczywistości jest on wymagany, jeśli polecenie, które start
uruchomi, ma podwójne cudzysłowy. Na przykład, w drugim przykładzie:
start "" "temporary foobar.cmd"
jeśli opuścisz pustą parę cudzysłowów w ten sposób:
start "temporary foobar.cmd"
to start
otworzy nowe okno poleceń i użyje jako nowego okna poleceń "temporary foobar.cmd"
, a nic zostanie wykonane w nowym oknie poleceń).
Jeśli chcesz, aby "Title"
czekał na zakończenie pliku wsadowego (po oddaleniu się start
), zanim pause
zakończy pracę, to musisz dodać przełącznik start
do polecenia /w
:
start "" /w foobar.cmd
Możesz umieścić to wszystko razem w jednym wierszu i nawet usunąć (skasować) tymczasowy plik wsadowy (start
):
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
Zauważ, że jeśli zamierzasz skasować tymczasowy plik wsadowy, musisz uruchomić foobar.cmd
z przełącznikiem start
, w przeciwnym razie tymczasowy plik wsadowy zostanie prawdopodobnie skasowany, zanim zdąży się uruchomić.