スポンサーリンク

【PowerShell】continueの使い方

記事内に広告が含まれています。

PowerShellのcontinueステートメントは、ループ処理の中で使用されます。

continueを実行すると、その時点のループの残りの処理をスキップし、次のループの反復に進みます。

これは、特定の条件を満たす場合に処理をスキップしたいときに便利です。

たとえば、特定の値や状態を除外する場合などに役立ちます。

スポンサーリンク

基本的な構文

continue

continueは、単独で使用します。条件分岐の中で使用されることが一般的です。

スポンサーリンク

使用例

基本例

以下の例では、1から10までの数値の中で、奇数をスキップして偶数のみを表示します。

for ($i = 1; $i -le 10; $i++) {
    if ($i % 2 -ne 0) {
        continue
    }
    Write-Output $i
}

実行結果

2
4
6
8
10

このスクリプトでは、数値が奇数の場合にcontinueでその後の処理をスキップし、次のループ反復に進みます。

ネストしたループでの使用

continueは外側のループには影響を与えず、現在のループのみを制御します。

以下の例では、内側のループで条件を満たす場合に処理をスキップします。

for ($i = 1; $i -le 3; $i++) {
    for ($j = 1; $j -le 3; $j++) {
        if ($j -eq 2) {
            continue
        }
        Write-Output "i=$i, j=$j"
    }
}

実行結果

i=1, j=1
i=1, j=3
i=2, j=1
i=2, j=3
i=3, j=1
i=3, j=3

このスクリプトでは、内側のループで$j -eq 2のときにcontinueが実行され、残りの処理がスキップされます。

実用的な例

ファイル処理の例

指定したフォルダ内のファイルを処理する際に、一部のファイルをスキップする場合に使用できます。

$files = Get-ChildItem -Path "C:\Temp" -File

foreach ($file in $files) {
    if ($file.Extension -eq ".tmp") {
        continue
    }
    Write-Output "Processing file: $($file.Name)"
}

実行結果

Processing file: example1.txt
Processing file: example2.docx

このスクリプトでは、.tmp拡張子のファイルをスキップして他のファイルのみを処理します。

注意点

  1. 無限ループに注意
    • continueを使用しても、条件によってループが正しく終了するように設計する必要があります。そうしないと無限ループに陥る可能性があります。
  2. 意図的なスキップの設計
    • continueを使用することで、スクリプトの読みやすさやメンテナンス性が低下する場合があります。条件分岐を整理して、必要最小限の使用にとどめることが重要です。

まとめ

PowerShellのcontinueステートメントは、ループ内で特定の条件を満たす場合に処理をスキップして次の反復に進むための便利なツールです。簡単な例から複雑なスクリプトまで幅広く活用できます。

適切に使用することで、スクリプトの効率性と柔軟性を向上させることができます。

タイトルとURLをコピーしました