PowerShell 7 お手軽条件判定


PowerShell 7 お手軽条件判定

概要

1週間前、ようやくリリースされた、PowerShell7
PowerShell 7の最大の改良点は、条件判定式の簡素化です。
今までは長い記述が必要だった内容を、
短く気軽に書けるようになりました。
この記事ではまだ試していない方に、以下の3つに絞ってご紹介します。

  1. 3項演算子
  2. null合体演算子
  3. null合体代入演算子

3項演算子

Powershellでは、制御構造のifがif式として値を返せました。
なので、3項演算子と同じことが以前からできましたが、
短く簡単に書きたい時には少し使いづらいものでした。

今回3項演算子が実装させ、
対話環境や使い捨てスクリプトで使う場合、
簡単な条件判定による単純な値の代入をしたい場合、
短く気軽に書けるようになれました。

if式

PS C:\> $x = 100;
PS C:\> $y = if($x -eq 100){100}elseif($x -gt 100){200}else{300};
PS C:\> $y;
100

3項演算子

PS C:\> $x = 100;
PS C:\> $y = $x -eq 100 ? 100 : $x -gt 100 ? 200 : 300;
PS C:\> $y;
100

null合体演算子

ある中身が不確定の値を代入したいが、
その値が
nullだった時のみ、
代替値を代入したい場合に使います。
PowerShell6以前は、if式を使う必要がありました。

if式

PS C:\> $x = $null;
PS C:\> $y = $null -eq $x ? 100 : $x;
PS C:\> $y;
100

null合体演算子

PS C:\> $x = $null;
PS C:\> $y = $x ?? 100;
PS C:\> $y;
100

null合体代入演算子

自身がnullの時に代替値を再代入するとき使います。
PowerShell6以前では、if式を使う必要がありました。

if式

PS C:\> $x = $null;
PS C:\> $x = $null -eq $x ? 100 : $x;
PS C:\> $x;
100

null合体代入演算子

PS C:\> $x = $null;
PS C:\> $x ??= 100;
PS C:\> $x;
100

最後に

条件判定式の簡素化が目立つPowerShell7は、
今まで以上に簡潔に、軽い気持ちで、
対話式のコマンド入力、
使い捨てスクリプトの作成ができます。
皆さんもぜひお試しください

  • このエントリーをはてなブックマークに追加

PAGE TOP