webdevqa.jp.net

PowerShellで1行に複数のコマンドを実行する方法

Cmdプロンプトでは、次のように1行に2つのコマンドを実行できます。

ipconfig /release & ipconfig /renew

PowerShellでこのコマンドを実行すると、次のようになります。

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

PowerShellには、cmdプロンプトで&と同等のものをすばやく生成できる演算子がありますか?

1行に2つのコマンドを実行する方法はどれでも構いません。私はスクリプトを作成できることを知っていますが、私はカフからもう少し何かを探しています。

251
David

セミコロンを使用してPowerShellでコマンドを連結します。

ipconfig /release; ipconfig /renew
364
Squeezy

MS-DOSスタイルのコマンドインタプリタの&演算子を使用した場合の動作には主な違いがありますが、セミコロンは前述の回答のとおりにコマンドをリンクします。

コマンドインタプリタでは、行が読み込まれると変数置換が行われます。これにより、暫定的な変更なしに変数を交換するなど、いくつかの優れた可能性があります。

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

次のようになります。

2
1

私の知る限りでは、この動作をPowerShellで再現する方法はありません。それは良いことだと主張する人もいるかもしれません。

実際にPowerShellでこれを行う方法があります。

$b, $a = $a, $b

それは変数値の単一行の交換をもたらすでしょう。

29
Dave_J