PowerShell「while」「do while」の根本的な違いとスクリプト例「PowerShell」のループ処理に使える4つの構文【後編】

「PowerShell」のループ処理構文を覚えれば、反復実行するタスクの自動化に役立つ。主要な構文のうち「while」「do while」の概要と、これらの違いを整理しよう。

2022年04月13日 08時15分 公開
[Anthony HowellTechTarget]

関連キーワード

プログラミング | Windows


 本連載は、「Windows」のコマンド実行ツール「PowerShell」で利用できるループ処理の構文のうち、4種類の主要な構文を紹介する。後編は残る2種類を取り上げる。

3.while

 「while」は、条件式の評価が「true」(真)である間、スクリプト(簡易プログラム)内のあるブロック(まとまり)を実行する。例えばID・アクセス管理サービス「Azure Active Directory」で管理するユーザーアカウントに対して、メールサービス「Exchange Online」のメールボックスの利用権限を付与するスクリプトがあるとする。メールボックスの作成が終わるまで、実行を待機する必要がある場合、このスクリプトは次のように記述できる。

会員登録(無料)が必要です
$upn = 'testuser@domain.com'
while (-not ($mbx = Get-EXOMailbox $upn -ErrorAction SilentlyContinue)) {
    Start-Sleep -Seconds 60
}
# 以降に$mbxで実行する処理を記述する

※注:システムによっては正常に実行できない場合があります。

 「$upn」で指定したアカウントのメールボックスが存在しなければ、「$mbx」はエラー値を示す。このとき条件式の結果を反転させる「-not」パラメータによって、条件式の評価はtrueとなり、ループは続行する。

 whileの注意点は、PowerShellがループ内のブロックを実行する前に、条件式を評価することだ。falseだと評価すると、ループ内のブロックを実行しない。

4.do while

 「do while」はwhileと似ているが、ループ内のコマンドを少なくとも1回は確実に実行する点で異なる。実行後にPowerShellはwhile内の条件式を評価し、doループを終了するかどうかを判断する。

 前出のwhileと同じ例は、次のように書き換えることができる。

$upn = 'testuser@domain.com'
do {
    Start-Sleep -Seconds 60
} while (-not ($mbx = Get-EXOMailbox $upn -ErrorAction SilentlyContinue))
# 以降に$mbxで実行する処理を記述する

※注:システムによっては正常に実行できない場合があります。

 このスクリプトは、whileで紹介したスクリプト例と同じ結果になる。つまりメールボックスの作成が終わってから、次の処理に移る。ただしメールボックスが存在するかどうかを初めて確認する前にも60秒間ストップする。

TechTarget発 エンジニア虎の巻

米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。

Copyright © ITmedia, Inc. All Rights Reserved.

新着ホワイトペーパー

技術文書・技術解説 アイティメディア広告企画(2025年04-06月クラウドネイティブ特集)

クラウドネイティブインフラ導入戦略ガイド

企業のデジタル化、クラウド化の動きが加速する中で、ネットワークやアジャイルの必要性が改めて関心を集めている。本稿では、クラウドネイティブアプリケーションの採用に当たってIT意思決定者が考慮すべき事項を解説する。

技術文書・技術解説 アイティメディア広告企画(2025年04-06月クラウドネイティブ特集)

クラウドネイティブアーキテクチャ導入戦略ガイド

クラウドネイティブアーキテクチャは、ビジネスにとっての未来と目されている。本稿ではDevOpsとマイクロサービスベース技術の影響、ソフトウェア開発のためのコンテナにおけるセキュリティの重要性、クラウドネイティブアプリケーション開発のためのMicrosoft Azureについて取り上げる。

プレミアムコンテンツ アイティメディア広告企画(2025年04-06月クラウドネイティブ特集)

“危ないコンテナ”の条件は? VMとどう使い分ける? コンテナ丸分かりガイド

アプリケーションを稼働させる手段として普及した「コンテナ」。仮想マシンとは何が違い、どのように使い分ければよいのか。コンテナを安全に運用するために注意すべきこととは。コンテナ活用のヒントを紹介する。

技術文書・技術解説 アイティメディア広告企画(2025年04-06月クラウドネイティブ特集)

「クラウドネイティブ開発」の基本と未来

クラウドネイティブなアプリケーションを構築することで、クラウドサービスのメリットを最大限に生かすことができる。クラウドネイティブ開発の基本と、開発に役立つツールがどのように進化しているのか、説明する。

技術文書・技術解説 アイティメディア広告企画(2025年04-06月クラウドネイティブ特集)

「Kubernetesクラスタ」運用の基礎知識をおさらい ツールのセキュリティ比較も

Kubernetesクラスタ管理の基本原則は何か。クラスタ管理ツール「Rancher」「OpenShift」「Tanzu」が採用しているセキュリティ対策とは。運用管理の基礎知識をおさらいする。

From Informa TechTarget

いまさら聞けない「仮想デスクトップ」と「VDI」の違いとは

いまさら聞けない「仮想デスクトップ」と「VDI」の違いとは
遠隔のクライアント端末から、サーバにあるデスクトップ環境を利用できる仕組みである仮想デスクトップ(仮想PC画面)は便利だが、仕組みが複雑だ。仮想デスクトップの仕組みを基礎から確認しよう。

ITmedia マーケティング新着記事

news017.png

「サイト内検索」&「ライブチャット」売れ筋TOP5(2025年5月)
今週は、サイト内検索ツールとライブチャットの国内売れ筋TOP5をそれぞれ紹介します。

news027.png

「ECプラットフォーム」売れ筋TOP10(2025年5月)
今週は、ECプラットフォーム製品(ECサイト構築ツール)の国内売れ筋TOP10を紹介します。

news023.png

「パーソナライゼーション」&「A/Bテスト」ツール売れ筋TOP5(2025年5月)
今週は、パーソナライゼーション製品と「A/Bテスト」ツールの国内売れ筋各TOP5を紹介し...