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.
