PowerShellでStringが空かどうかをチェックする
-
PowerShellでStringが
null
または空
でないかをチェックする - PowerShellでStringがNullまたは空かどうかをチェックするためのIsNullOrEmptyの代替方法
-
PowerShellでStringがNullまたは空かどうかをチェックするために
-eq
オペレータを使用する - PowerShellでStringがNullまたは空かどうかをチェックするためにRegExを使用する
この記事では、PowerShellで指定されたStringがnull
または空であるかどうかをチェックするために使用できるメソッドについて説明します。
PowerShellでStringがnull
または空
でないかをチェックする
IsNullOrEmpty
は一般的なスクリプト/プログラミング言語で、与えられたStringが空
またはnull
であるかどうかをチェックするためのStringメソッドです。nullは割り当てられていないString値であり、空のStringは " "
または与えられたString.Empty
のStringです。
PowerShellでStringがNullまたは空かどうかをチェックするためのIsNullOrEmptyの代替方法
PowerShellのIsNullOrEmpty
と同等の機能を実行するための簡単な方法があります。以下のコードセグメントが使用できます。
コマンドで与えられたStringがnull
であるため、コードの出力は以下のようになります。
サンプルコード1:
PS C:\Users\Test> $str1 = $null
PS C:\Users\Test> if ($str1) { 'not empty' } else { 'empty' }
出力:
empty
Stringが空
の場合、出力も空
です。
サンプルコード2:
PS C:\Users\Test> $str2 = ''
PS C:\Users\Test> if ($str2) { 'not empty' } else { 'empty' }
出力:
empty
Stringが空
でもnull
でもない場合、出力は空ではありません
です。
サンプルコード3:
PS C:\Users\Test> $str3 = ' '
PS C:\Users\Test> if ($str3) { 'not empty' } else { 'empty' }
出力:
not empty
2つのStringを比較し、空
であるかどうかを確認するコマンドもあります。
PS C:\Users\Agni> if ($str1 -and $str2) { 'neither empty' } else { 'one or both empty'}
出力:
one or both empty
さらに、上記で使用された比較の一つとして、空でもない
という可能性があります。これはIsNullOrEmpty
を使用するための最も明確かつ簡潔な方法として識別できます。
上記の方法に加えて、PowerShellでIsNullOrEmpty
の静的メソッドも使用できます。
PowerShellでStringがNullまたは空かどうかをチェックするために-eq
オペレータを使用する
-eq
オペレータは2つの値を等しく比較します。Stringを空のStringと比較して、それが空かどうかを確認できます。
コード:
$str1 = ""
if ($str1 -eq "") {
Write-Host "String is empty"
} else {
Write-Host "String is not empty"
}
出力:
String is empty
PowerShellでStringがNullまたは空かどうかをチェックするためにRegExを使用する
正規表現を使用して、Stringのパターンをマッチさせることができます。空またはホワイトスペースのみのStringにマッチするregexパターンを使用できます。
コード:
$str4 = " "
if ($str4 -match "^\s*$") {
Write-Host "String is empty"
} else {
Write-Host "String is not empty"
}
出力:
String is empty
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.