「PowerShell」のループ処理に使える4つの構文【後編】
PowerShell「while」「do while」の根本的な違いとスクリプト例
「PowerShell」のループ処理構文を覚えれば、反復実行するタスクの自動化に役立つ。主要な構文のうち「while」「do while」の概要と、これらの違いを整理しよう。
本連載は、「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だと評価すると、ループ内のブロックを実行しない。
併せて読みたいお薦め記事
連載:「PowerShell」のループ処理に使える4つの構文
PowerShellの使い方
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.
TechTarget発 エンジニア虎の巻
米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。
この記事の著者
関連記事
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
「Excel至上主義」の終わらせ方 丸2日の手作業地獄から情シスと現場を救うには
-
2
取手市がVDIと決別した理由 更改費用「4倍超」を約1.7倍に圧縮
-
3
「Microsoft 365のセキュリティ運用」に関するアンケート
-
4
急増する「AIはこう言ってる」マン 判断を狂わせる「AI忖度」を防ぐには?
-
5
221人調査で分かった「情シス最大のストレス」は?
-
6
「Salesforceのテスト自動化ツール」に関するアンケート
-
7
「データストレージの活用方法」に関するアンケート
-
8
「AI時代の統合基盤・エンタープライズAI管理」に関するアンケート
-
9
AIで人を減らした企業がもう心変わり 「AIブーメラン現象」の実態
-
10
自宅のWi-Fiが「遅い」「途切れる」本当の原因は? Dellが推奨する鉄則
ホワイトペーパーランキング PR
-
1
年収2000万「クラウドセキュリティのプロ」になれる資格とは
-
2
セキュリティソフトをすり抜ける標的型攻撃メール、不審メールの見破り方とは?
-
3
Windows Updateの通信集中で回線が逼迫、ネットワーク刷新事例に学ぶ解決策
-
4
財務を戦略的組織へ進化させるAI活用術、4つの主要な障壁と解消方法
-
5
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
-
6
“あのファイル転送”で暗躍するノーウェアランサム
-
7
標的型攻撃メールを見破るには? サンプル文面を例に傾向を解説
-
8
商用利用の安全性を確保し大量のコンテンツを高速で生成する、AI活用の秘訣
-
9
マンガで解説、1日で生成AI環境を構築できるワークショップの中身とは?
-
10
Dark AIが台頭する時代の新発想、「より高度なAIで対抗する」具体的方法とは?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー