スポンサーリンク

【PowerShell】NULL判定を行う方法

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

NULL判定は、プログラム、スクリプトの信頼性を向上させるために重要です。

NULLは、変数やオブジェクトが値を持っていない状態を示すもので、NULL判定を適切に行うことで、エラーを防いだり、スクリプトの流れをコントロールしたりすることができます。

PowerShellでNULL判定を行う方法を、サンプルコードを交えてまとめてみます。

スポンサーリンク

NULL判定の書き方

PowerShellにおける$nullは、オブジェクトや変数が値を持っていないことを表します。

これは、SQLやC#などのプログラミング言語で使われるNULLと同じ意味です。

NULL判定の基本的な方法は、-eq演算子や-ne演算子を使って$nullと比較することです。

具体的なサンプルコードで説明していきます。

$nullを使った判定

まず、変数が$nullであるかどうかを確認する基本的な方法です。ここでは、$variableがNULLかどうかを判定します。

# 変数を定義するが、値は設定しない
$variable = $null

# NULLかどうかを判定する
if ($variable -eq $null) {
    Write-Host "変数はNULLです。"
} else {
    Write-Host "変数には値があります。"
}

このスクリプトでは、$variableがNULLかどうかを-eq演算子を使って判定しています。結果として「変数はNULLです。」が出力されます。

$null判定を逆にする

逆に、変数がNULLでない場合の処理を行うためには、-ne(not equal)を使います。

# 変数に値を設定
$variable = "PowerShell"

# NULLでないかを判定する
if ($variable -ne $null) {
    Write-Host "変数には値があります。"
} else {
    Write-Host "変数はNULLです。"
}

このスクリプトでは、$variableに値が設定されているため「変数には値があります。」と表示されます。

$nullを左側に置く

PowerShellでは、$nullを左側に書くと、比較の際に変数が未定義だった場合でもエラーを避けることができます。

# 変数を定義しない
$variable = $null

# NULL判定をする際に$nullを左に置く
if ($null -eq $variable) {
    Write-Host "変数はNULLです。"
} else {
    Write-Host "変数には値があります。"
}

$nullを左側に置くことで、仮に$variableが存在しない場合でもPowerShellはエラーを出さずに判定を行えます。

NULLチェックに使える便利な構文:[string]::IsNullOrEmpty

文字列のNULLまたは空文字(空白)の判定を行う際には、.NETのメソッドである[string]::IsNullOrEmpty()が便利です。

# 変数を空文字で初期化
$variable = ""

# 文字列がNULLまたは空文字かどうかを確認
if ([string]::IsNullOrEmpty($variable)) {
    Write-Host "変数はNULLまたは空文字です。"
} else {
    Write-Host "変数には文字列が入っています。"
}

このメソッドは、変数がNULLか、空文字かを同時に判定できるため、文字列に関するNULLチェックの際に役立ちます。

配列のNULL判定

配列のNULLチェックも同様に行えますが、特定の要素に対してNULL判定を行う際は、その要素を個別にチェックします。

# 配列を定義
$array = @(1, $null, 3)

# 配列内のNULLチェック
foreach ($item in $array) {
    if ($item -eq $null) {
        Write-Host "この要素はNULLです。"
    } else {
        Write-Host "この要素は: $item"
    }
}

この例では、配列の各要素に対してNULLかどうかをチェックし、結果を表示しています。

Where-Objectを使ったNULL判定

PowerShellでは、Where-Objectを使用して、オブジェクトや配列内のNULL要素をフィルタリングすることもできます。

# 配列を定義
$array = @(1, $null, 3, $null, 5)

# 配列内のNULL要素をフィルタリング
$nullElements = $array | Where-Object { $_ -eq $null }

# 結果を表示
Write-Host "NULLの要素数: $($nullElements.Count)"

この例では、Where-Objectを使用して、配列内のNULL要素を抽出し、その数をカウントしています。

スポンサーリンク

まとめ

PowerShellでは、$nullを使ってNULL判定を簡単に行うことができます。文字列や配列に対するNULLチェックも必要な場面で便利に使えます。

スポンサーリンク
Windows
著者SNS
タイトルとURLをコピーしました