PowerShellForループでコマンドを複数回実行する方法

Forループは、あらゆるプログラミング言語で(valuable tools in any programming language)最も価値のあるツールの1つであり、  MicrosoftPowerShellも例外(Microsoft PowerShell)ではありません。他のループを使用してコマンドを繰り返すこともできますが、Forループがおそらく最も簡単です。

配列の反復から関数の実行まで、このツールで実現できることはたくさんあります。これは、 PowerShell(PowerShell)でForループを使用する方法に関するチュートリアルです。

PowerShellでのForループ(Loops)使用(Use)は何ですか?

コマンドプロンプト(Command Prompt)とは異なり、PowerShellは完全なスクリプト環境です。つまり、コマンドを手動で入力するのではなく、再利用可能なPowerShellスクリプトを記述して、タスクを自動的に実行できます。(PowerShell scripts)そして、Forループは、これらのモジュールを作成するための鍵です。

Forステートメントは、スクリプトブロックを特定の回数繰り返し、進行状況を追跡するために特定の変数を変更します。これにより、いくつかのかなり興味深いシナリオでループを使用できます。

一連の数値を生成したり、素数を決定したり、カウントダウンタイマーを表示したりできます。より実際的には、オブジェクトの配列を反復処理して、各エントリで何らかのアクションを実行できます。

PowerShellのForループ(Loop)構文(Syntax)

forループは、Windows PowerShellで、他のプログラミング言語と同じように機能します。追跡変数の初期化、その値のテスト、および変数の変更を行う式は、セミコロンで区切られた「For」に続く括弧内に含まれます。次に、中括弧で囲まれたステートメントリスト自体が表示されます。

For(Initialization ; Condition ; Update

{{

    スクリプトブロック(Script Block)

}

PowerShellスクリプト(PowerShell Script)でForループを使用する方法(Loop)

Forループの使用は非常に簡単です。わずかに変化するステップを繰り返す必要がある状況に遭遇したときはいつでも、それをForループに入れる必要があります。

変数$nに含まれる数nまでのすべての自然数の合計を見つけることができるコードスニペットを作成する必要があるとします。基本的なForループの例を次に示します。

$ n = 10

$ sum = 0

For($ i = 1; $ i -le $ n; $ i ++)

{{

    $ sum = $ sum + $ i

}

「$n自然数の合計は$sumです」

Forループを介した配列へのアクセス

数値シーケンスの生成は、ほとんどの人がPowerShellを使用する目的ではほとんどありません。より一般的な使用法は、配列を反復処理することです。

(Say)7つの要素を持つ$weekの配列があるとします次の例に示すように、単純なForループを使用して、配列に含まれる日のリストを出力できます。

For($ i = 0; $ i -lt $ week.Length; $ i ++)

{{

    $ week [$ i]

}

ForEachループ(ForEach Loop)を使用して配列をすばやく反復する(Quickly Iterate)

Forループのもう1つの形式は、ForEachステートメントです。このバージョンでは、 PowerShell(PowerShell)配列の内容を確認し、それらを個別に処理することが簡単になります。たとえば、前のコードスニペットは次のように書き直すことができます。

Foreach($weekの$day)

{{

    $ day

}

より複雑なオブジェクトを処理する場合は、Foreach-Objectコマンドレットを使用して、 PowerShell(PowerShell)コマンドの内容に対してアクションを実行することもできます。

Forループは他のタイプ(Types)ループ(Loops)とどのように異なり(Loop Different)ますか?

使用できるループステートメントのタイプは、Forループだけではありません。ほとんどのプログラミング言語と同様に、PowerShellには複数の種類のループがあります。

その間

これらの中で最も単純なのは、Whileループです。条件とスクリプトブロックだけがあり、テスト式がtrueと評価される限りループが実行されます。式が最初に評価されるため、コードがまったく実行されないか、無限ループになる可能性があります。 

一方(状態(Condition)

{{

    スクリプトブロック(Script Block)

}

一方を行います

式がfalseと評価された場合でも、少なくとも1回実行する必要のあるスクリプトを作成している場合は、Do-Whileループを使用できます。Whileループとの唯一の違いは、条件の前にコマンドブロックを配置することです。つまり、テスト式が最初にチェックされる前にコードが実行されます。

行う {

    スクリプトブロック(Script block)

}

一方(状態(Condition)

するまで-

このループの別のバージョンはDo-Untilです。基本的(Basically)に、コードブロックを実行し、テスト式が真になるまでそれを繰り返します。これは、Do-Whileループの逆です。標準のDo-While(Do-While)ループで条件を変更することで同じことを実現できるため、特に有用な構造ではありません。

行う {

    スクリプトブロック(Script Block)

}

まで(条件(Condition)

Forループが優れている理由

これらの他のすべてのループ構造の問題は、初期値または更新ステートメントが含まれていないことです。ループの外側で変数を作成し、ループのすべてのパスでそれをインクリメント(またはデクリメント)することを手動で覚えておく必要があります。

ご想像のとおり、プログラマーはこの手順を忘れてしまい、スクリプトが意図したとおりに機能しないことがよくあります。これは、デバッグに貴重な時間を浪費します。

Forループは、開始括弧内に初期化式と増分式を必要とすることで、この問題を回避します。これにより、よりクリーンで堅牢なスクリプトが実現します。

PowerShellでForループ(Loop)を使用する必要があるのはいつですか?

PowerShellは、自動化のためのスクリプトを作成することを目的としています。そして、これを実現するためのおそらく最も有用なツールはForループです。これを使用して、多くのコピー&ペースト操作をよりコンパクトでエレガントなスクリプトに置き換えることができます。

このループの最も一般的な機能は、一度に1つのエントリで配列を反復処理することです。さらに合理化されたスクリプトの場合は、ForEachループを使用することもできます。Forループを使用して数値シーケンスを生成することもできますが、これが必要になることはめったにありません。

Forループは、ループのすべての重要な関数をパラメーターに含めることにより、他のループアルゴリズムよりもスコアが高くなり、これらのステートメントを忘れることによるエラーを防ぎます。これにより、一連のコマンドを繰り返す必要があるシナリオでは、Forループが不可欠になります。



About the author

私は Firefox と Google Docs の経験を持つ Web 開発者です。私はフロリダ大学で経営学の学位を取得しています。私のスキルには、Web サイト開発、コンテンツ管理システム (CMS)、データ分析、およびユーザー インターフェイス設計が含まれます。私は経験豊富なコンサルタントであり、チームが効果的な Web サイトとアプリケーションを構築するのを支援できます。



Related posts