【PowerShell】変数の値がnullかどうかを判定する方法


この記事はプロモーションを含みます。

PowerShell

ホーム > PowerShell 逆引きリファレンス

PowerShellで、変数の値が「null」かどうかを判定する方法を解説します。

はじめに

PowerShellでは、null値を表すための自動変数「$null」が用意されています。

今回はこの「$null」を使用して、値がnullかどうかを判定していきます。

判定方法 その1

ここでは、if文を使用して、変数の値が[null]かどうかを判定する方法を説明します。

書式

変数[$null]と条件分岐[if]文を組み合わせることで判定することが出来ます。

if (変数名 -eq $null) {
	変数がnullの場合に実行する処理
}

サンプル

変数がnullであるかを確認するサンプルです。

$var

if ($var -eq $null) {
	Write-Host "値は[null]です"
}else{
	Write-Host "値は[null]ではありません"
}

サンプルの実行結果です。

実行結果から分かるように、変数に値を代入しない場合、
その変数は、nullとなります。

PS C:\workspace\PowerShell> .\test.ps1
値は[null]です

判定方法 その2

ここでは、bool型を使用して、変数の値が[null]かどうかを判定する方法を説明します。

書式

変数をboolでキャストすることで判定することが出来ます。
また、変数をboolでキャストしただけでは、空文字もヒットしてしまうので、空文字にヒットしないように条件を追加しています。

if (-not [bool]変数名 -and 変数名 -ne "") {
	変数がnullの場合に実行する処理
}

条件分岐に「-not」を付けていますが、これはboolでキャストした変数の値によって、下記のような結果となるためです。

変数の値結果
nullFalse
""(空文字)False
数値True
文字列True

サンプル

変数がnullであるかを確認するサンプルです。

$var

if (-not [bool]$var -and $var -ne "") {
	Write-Host "値は[null]です"
}else{
	Write-Host "値は[null]ではありません"
}

サンプルの実行結果です。

PS C:\workspace\PowerShell> .\test.ps1
値は[null]です

判定方法 その3

ここでは、IsNullOrEmptyメソッドを使用して、変数の値が[null]かどうかを判定する方法を説明します。

書式

IsNullOrEmptyメソッドを使用することで判定することが出来ます。
また、IsNullOrEmptyメソッドだけでは、空文字もヒットしてしまうので、空文字にヒットしないように条件を追加しています。

if ([String]::IsNullOrEmpty(変数名) -and 変数名 -ne "") {
	変数がnullの場合に実行する処理
}

IsNullOrEmptyメソッドでは、変数の値によって、下記のような結果が返されます。

変数の値結果
nullTrue
""(空文字)True
数値False
文字列False

サンプル

変数がnullであるかを確認するサンプルです。

$var

if ([String]::IsNullOrEmpty($var) -and $var -ne "") {
	Write-Host "値は[null]です"
}else{
	Write-Host "値は[null]ではありません"
}

サンプルの実行結果です。

PS C:\workspace\PowerShell> .\test.ps1
値は[null]です

コメント

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