読者です 読者をやめる 読者になる 読者になる

PowerShellで文字列などの変数のNullまたは空文字を確認するには

PowerShell

まず、.Net的にStringのIsNullOrEmptyを使う方法があります。

PS > $foo = "bar"
PS > [String]::IsNullOrEmpty($foo)
False


PowerShellでは変数をboolにキャストするだけでも同じことができます。

$stringNull = $null
$stringEmpty = ""
$stringNotEmpty = "something"
$intNotEmpty = 100

[bool]$stringNull
#->False
$stringNull -as "bool"
#->False


[bool]$stringEmpty
#->False
$stringEmpty -as "bool"
#->False


$stringNotEmpty -as "bool"
#->True
[bool]$stringNotEmpty
#->True


$intNotEmpty -as "bool"
#->True
[bool]$intNotEmpty
#->True


つまりはIF文の条件式は単純に変数を入れるだけで、こんな風に書けます。

function CheckNullOrEmpty($param)
{
  #変数を入れるだけ
    if($param)
    {"param is not null or empty"}
    else
    {"param is null or empty"}
}

$stringNull = $null
$stringEmpty = ""
$stringNotEmpty = "something"
$intNotEmpty = 100

CheckNullOrEmpty $stringNull      #->param is null or empty
CheckNullOrEmpty $stringEmpty     #->param is null or empty
CheckNullOrEmpty $stringNotEmpty  #->param is not null or empty
CheckNullOrEmpty $intNotEmpty     #->param is not null or empty