For ループは最も あらゆるプログラミング言語の貴重なツール の 1 つであり、Microsoft PowerShell も例外ではありません。他のループを使用してコマンドを繰り返すこともできますが、おそらく For ループが最も簡単です。
配列の反復処理から関数の所定回数の実行まで、このツールを使用して達成できることは数多くあります。これは、PowerShell で For ループを使用する方法に関するチュートリアルです。
PowerShell での For ループの使用法は何ですか?
コマンド・プロンプト とは異なり、PowerShell は完全なスクリプト環境です。これは、再利用可能な PowerShell スクリプト を作成して、コマンドを手動で入力するのではなく、自動的にタスクを実行できることを意味します。 For ループは、これらのモジュールを作成するための鍵となります。
For ステートメントは、スクリプト ブロックを特定の回数繰り返し、特定の変数を変更して進行状況を追跡します。これにより、いくつかの興味深いシナリオでループを使用できるようになります。
一連の数値を生成したり、素数を決定したり、カウントダウン タイマーを表示したりできます。より実際的には、オブジェクトの配列を反復処理して、各エントリに対して何らかのアクションを実行できます。
PowerShell の For ループの構文
Windows PowerShell では、For ループは他のプログラミング言語と同じように機能します。追跡変数の初期化、その値のテスト、および変数の変更を行う式は、セミコロンで区切られた「For」に続く括弧内に収まります。次に、中括弧で囲まれたステートメント リスト自体が続きます。
対象 (初期化; 状態; 更新)
{
スクリプト ブロック
}
PowerShell スクリプトで For ループを使用する方法
For ループの使用は非常に簡単です。わずかに異なるステップを繰り返す必要がある状況に遭遇した場合は、そのステップを For ループに入れる必要があります。
変数 $n に含まれる数値 nになるまでのすべての自然数の合計を求めるコード スニペットを作成する必要があるとします。基本的な For ループの例を次に示します。
$n = 10
$sum = 0
($i = 1 ; $i -le $n ; $i++) の場合
{
$sum = $sum + $i
}
「$n の自然数の合計は $sum です」
For ループを介した配列へのアクセス
.数値シーケンスの生成は、ほとんどの人が PowerShell を使用する目的ではありません。より一般的な使用法は、配列を反復処理することです。
7 つの要素を持つ配列 $week があるとします。次の例に示すように、単純な For ループを使用して、配列に含まれる日付のリストを出力できます。
($i = 0 ; $i -lt $week.Length ; $i++) の場合
{
$week[$i]
}
ForEach ループを使用して配列を迅速に反復処理する
For ループの別の形式は、ForEach ステートメントです。このバージョンでは、PowerShell 配列の内容を調べて個別に処理することが簡素化されています。たとえば、前のコード スニペットは次のように書き直すことができます。
Foreach ($week の $day)
{
$day
}
より複雑なオブジェクトを扱う場合は、Foreach-Object コマンドレットを使用して、PowerShell コマンドの内容に対してアクションを実行することもできます。
For ループは他のタイプのループとどう違うのですか?
使用できるループ ステートメントのタイプは For ループだけではありません。ほとんどのプログラミング言語と同様、PowerShell には複数の種類のループがあります。
その間
これらの中で最も単純なものは While ループです。必要なのは条件とスクリプト ブロックだけで、テスト式が true と評価される限りループが実行されます。式が最初に評価されるため、コードがまったく実行されないか、無限ループになる可能性があります。
その間 (条件)
{
スクリプト ブロック
}
やりながら
式が false と評価される場合でも、少なくとも 1 回実行する必要があるスクリプトを作成している場合は、Do-while ループを使用できます。 While ループとの唯一の違いは、コマンド ブロックが条件の前に配置されることです。これは、テスト式が初めてチェックされる前にコードが実行されることを意味します。
実行{
スクリプト ブロック
}
その間 (条件)
期限までに行う
このループの別のバージョンは Do-Until です。基本的に、コード ブロックを実行し、テスト式が true になるまでそれを繰り返します (Do-while ループの逆)。標準の Do-while ループで条件を変更することで同じことを実現できるため、特に便利な構造ではありません。.
実行{
スクリプト ブロック
}
(条件)まで
For ループが優れている理由
これらの他のすべてのループ構造の問題は、初期値または更新ステートメントが含まれていないことです。ループの外で変数を作成し、ループのパスごとにそれをインクリメント (またはデクリメント) することを忘れずに手動で行う必要があります。
ご想像のとおり、プログラマはこの手順を忘れることが多く、スクリプトが意図したとおりに動作しなくなることがあります。これにより、デバッグに貴重な時間が無駄になります。
For ループは、開始括弧内の初期化式と増分式を必要とすることで、この問題を回避します。これにより、よりクリーンで堅牢なスクリプトが作成されます。
PowerShell で For ループを使用する必要があるのはどのような場合ですか?
PowerShell は、自動化のためのスクリプトを作成することを目的としています。そしておそらく、これを実現するための最も便利なツールは For ループです。これを使用すると、多くのコピー&ペースト操作をよりコンパクトで洗練されたスクリプトに置き換えることができます。
このループの最も一般的な機能は、一度に 1 つのエントリを配列に対して反復処理することです。スクリプトをさらに効率化するには、ForEach ループを使用することもできます。 For ループを使用して数値シーケンスを生成することもできますが、それが必要になることはほとんどありません。
For ループは、ループのすべての必須関数をパラメータに含めることにより、他のループ アルゴリズムよりも優れたスコアを獲得し、ステートメントの忘れによるエラーを防ぎます。これにより、一連のコマンドを繰り返す必要があるシナリオでは For ループが不可欠になります。
.