Jak uruchomić wiele poleceń w jednym wierszu w programie PowerShell?


268

W wierszu polecenia cmd możesz uruchomić dwa polecenia w jednym wierszu:

ipconfig /release & ipconfig /renew

Po uruchomieniu tego polecenia w programie PowerShell otrzymuję:

Ampersand not allowed. The `&` operator is reserved for future use

Czy PowerShell ma operator, który pozwala mi szybko wyprodukować odpowiednik &polecenia cmd?

Wystarczy dowolna metoda uruchamiania dwóch poleceń w jednym wierszu. Wiem, że mogę napisać scenariusz, ale szukam czegoś więcej.


5
Zabawna uwaga: pomiędzy portami szeregowymi a serializacją tego pytania jest praktycznie niemożliwe.
David

Być kujonem ... Bardzo łatwo go znaleźć. Trudno jest uzyskać odpowiedni zestaw trafień. :) (+1 za świetne pytanie)
Konrad Viltersten

Odpowiedzi:


384

Użyj średnika do połączenia poleceń w PowerShell:

ipconfig /release; ipconfig /renew

9
Czy będą działać równolegle czy sekwencyjnie?
Tarkus

19
Spowoduje to uruchomienie ich sekwencyjnie, podobnie jak operator & w cmd.exe.
Squeezy

42
Jest jednak duża różnica - „;” uruchamia drugie polecenie, nawet jeśli pierwsze się nie powiedzie.
Ivan

10
Jak wspomniano powyżej, jest to również zachowanie programu & in cmd.exe.
Squeezy,

7
@Rafi Tak, spróbuj {Command-One -ea Stop} Złap {Command-Two}
Dave_J

30

Średnik połączy polecenia zgodnie z poprzednią odpowiedzią , chociaż istnieje zasadnicza różnica w stosunku do zachowania &operatora w interpretatorze poleceń w stylu MS-DOS.

W interpretatorze poleceń podstawienie zmiennej następuje podczas odczytu linii. Pozwala to na kilka ciekawych możliwości, takich jak zamiana zmiennych bez tymczasowego:

set a=1
set b=2
set a=%b% & set b=%a%
echo %a%
echo %b%

Spowodowałoby to:

2
1

O ile mi wiadomo, nie ma sposobu na replikację tego zachowania w PowerShell. Niektórzy mogą twierdzić, że to dobra rzecz.

Istnieje sposób na wykonanie tego w PowerShell:

$b, $a = $a, $b

Spowoduje to zamianę wartości zmiennych w jednym wierszu.


Wydaje się, że nie działa z pola „Cel” z opcją -command w skrócie
wyczyść
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.