【PowerShell】変数の値が空文字(ブランク)かどうかを判定する方法


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

PowerShell

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

PowerShellで、変数の値が空文字(ブランク)かどうかを判定する方法を解説します。

判定方法 その1

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

書式

空文字[""]と条件分岐[if]文を組み合わせることで判定することが出来ます。

if (変数名 -eq "") {
	文字列が空文字(ブランク)の場合に実行する処理
}

サンプル

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

$var = ""

if ($var -eq "") {
	Write-Host "値は「空文字(ブランク)」です"
}else{
	Write-Host "値は「空文字(ブランク)」ではありません"
}

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

PS C:\workspace\PowerShell> .\test.ps1
値は「空文字(ブランク)」です

判定方法 その2

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

書式

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

if (-not [bool]変数名 -and 変数名 -ne $null) {
	文字列が空文字(ブランク)の場合に実行する処理
}

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

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

サンプル

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

$var = ""

if (-not [bool]$var -and $var -ne $null) {
	Write-Host "値は「空文字(ブランク)」です"
}else{
	Write-Host "値は「空文字(ブランク)」ではありません"
}

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

PS C:\workspace\PowerShell> .\test.ps1
値は「空文字(ブランク)」です

判定方法 その3

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

書式

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

if ([String]::IsNullOrEmpty(変数名) -and 変数名 -ne $null) {
	変数が空文字(ブランク)の場合に実行する処理
}

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

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

サンプル

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

$var = ""

if ([String]::IsNullOrEmpty($var) -and $var -ne $null) {
	Write-Host "値は「空文字(ブランク)」です"
}else{
	Write-Host "値は「空文字(ブランク)」ではありません"
}

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

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

コメント

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