2013-06-26 17:24:22 +0000 2013-06-26 17:24:22 +0000
309
309

Wie führe ich mehrere Befehle in einer Zeile in PowerShell aus?

In einer cmd-Eingabeaufforderung können Sie zwei Befehle in einer Zeile wie folgt ausführen:

ipconfig /release & ipconfig /renew

Wenn ich diesen Befehl in PowerShell ausführe, erhalte ich:

Verfügt PowerShell über einen Operator, mit dem ich schnell das Äquivalent von & in einer cmd-Eingabeaufforderung erzeugen kann?

Jede Methode zum Ausführen von zwei Befehlen in einer Zeile ist geeignet. Ich weiß, dass ich ein Skript erstellen kann, aber ich suche nach etwas, das etwas mehr aus dem Ärmel schüttelt.

Antworten (2)

438
438
438
2013-06-26 17:28:12 +0000

Verwenden Sie ein Semikolon, um Befehle in PowerShell zu verketten:

ipconfig /release; ipconfig /renew
32
32
32
2013-09-10 17:16:28 +0000

Ein Semikolon verbindet die Befehle wie in der vorhergehenden Antwort angegeben , obwohl es einen wesentlichen Unterschied zum Verhalten mit dem Operator & im Befehlsinterpreter im MS-DOS-Stil gibt.

Im Befehlsinterpreter findet die Variablenersetzung beim Lesen der Zeile statt. Dies ermöglicht einige nette Möglichkeiten wie z.B. das Austauschen von Variablen ohne eine Zwischenzeit:

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

Würde zu folgendem Ergebnis führen:

2
1

Soweit ich weiß, gibt es keine Möglichkeit, dieses Verhalten in PowerShell zu replizieren. Einige mögen argumentieren, das sei eine gute Sache.

Es gibt tatsächlich eine Möglichkeit, dies in PowerShell zu tun:

$b, $a = $a, $b

Es führt zu einer Vertauschung der Variablenwerte in einer einzigen Zeile.