PowerShell を使用して文字列の先頭をチェックする方法
-
PowerShell で文字列の始まりをチェックするための
-like
論理演算子の使用 -
PowerShell で文字列の始まりをチェックするための
-clike
論理演算子の使用 -
PowerShell で文字列の始まりをチェックするための
StartsWith()
関数の使用 - PowerShell で文字列の始まりをチェックするための部分文字列との比較
- 結論

文字列変数が特定の文字または文字列で始まるかどうかを確認する必要があるユースケースに直面することがあるかもしれません。特定の文字または文字列で文字列が始まるかを確認することは、スクリプトを作成する際の一般的な実践であり、Windows PowerShell で書かれた場合も reasonably 簡単です。
この記事では、Windows PowerShell で異なる方法を使用して文字列変数の始まりをチェックする方法を示します。
PowerShell で文字列の始まりをチェックするための -like
論理演算子の使用
PowerShell では、-Like
論理演算子はパターンマッチングの強力なツールです。文字列の始まりをチェックするために使用する場合、ワイルドカードに基づく柔軟な比較を可能にします。
デフォルトでは、-Like
演算子は大文字と小文字を区別しません。ただし、論理演算子を使用する場合は、アスタリスクワイルドカード(*
)と組み合わせて使用する必要があります。
コード:
$strVal = 'Hello World'
if ($strVal -like 'hello*') {
Write-Host "Your string starts with hello."
}
else {
Write-Host "Your string does not start with hello."
}
出力:
Your string starts with hello.
コードでは、文字列変数を初期化します。$strVal = 'Hello World'
。次に、-like
演算子を使用して、文字列($strVal
)がプレフィックス 'hello'
で始まるかをチェックします。
-like
演算子はワイルドカードを使用したパターンマッチングを可能にし、この場合、アスタリスク(*
)はゼロまたはそれ以上の文字を表します。条件文は、文字列がパターン 'hello*'
と一致するかどうかを評価します。
この場合、条件は真であり、出力は Your string starts with hello
です。
PowerShell で文字列の始まりをチェックするための -clike
論理演算子の使用
PowerShell の -clike
演算子は、大文字と小文字を区別した文字列の比較を行うために使用されます。これは、指定されたパターンと文字列が一致するかどうかを確認し、-like
演算子と似ていますが、大文字と小文字を区別します。
これは、-clike
演算子が文字列内の文字のケースがパターン内の文字のケースと正確に一致した場合にのみ True
を返すことを意味します。大文字と小文字を区別した比較を行いたい場合は、-cLike
演算子を使用できます。
コード:
$strVal = 'Hello World!'
if ($strVal -clike 'h*') {
Write-Host "Your string starts with lowercase h."
}
else {
Write-Host "Your string starts with uppercase H."
}
出力:
Your string starts with uppercase H.
このコードでは、文字列変数 $strVal
を 'Hello World!'
で初期化します。大文字と小文字を区別する文字列比較のために使用される -clike
演算子を使って、文字列が小文字の 'h'
で始まるかをチェックします。
条件文は、文字列が大文字と小文字を区別してパターン 'h*'
と一致するかどうかを評価します。条件が偽であるため、文字列が大文字の 'H'
で始まることを示し、出力は Your string starts with uppercase H
です。
-clike
演算子は大文字と小文字を区別するため、文字のケースが正確に一致しない限り文字列は一致しません。大文字と小文字を区別しない比較を行いたい場合は、代わりに -like
演算子を使用できます。
PowerShell で文字列の始まりをチェックするための StartsWith()
関数の使用
また、文字列が特定の文字の集合で始まるかを確認するために、.NET フレームワークの文字列拡張関数である StartsWith()
を使用することもできます。
PowerShell における StartsWith()
関数は、文字列が指定されたプレフィックスで始まるかどうかを確認するためのメソッドです。StartsWith()
関数は、指定されたサブストリングで文字列が始まるかどうかを示すブール値を返す PowerShell の組み込みメソッドです。
コード:
$strVal = 'Hello World!'
if ($strVal.StartsWith('Hello')) {
Write-Host 'Your string starts with hello.'
}
else {
Write-Host 'Your string does not start with hello.'
}
出力:
Your string starts with hello.
上記のコードでは、$strVal
という文字列変数が 'Hello'
で始まるかを StartsWith()
メソッドを使用して確認します。条件が真のため、出力は Your string starts with hello
です。
StartsWith
関数は、ケース感度のある文字をチェックするために使用できる別の引数も受け入れます。この引数は CurrentCultureIgnoreCase
です。
大文字と小文字を区別した比較を行いたい場合、次のメソッドを使用します。
コード:
$strVal = 'Hello world'
if ($strVal.StartsWith('hello', 'CurrentCultureIgnoreCase')) {
Write-Host 'True'
}
else {
Write-Host 'False'
}
出力:
True
このコードでは、StartsWith()
メソッドを 'CurrentCultureIgnoreCase'
パラメータを使用してケースに関係なく $strVal
という文字列変数が 'hello'
で始まるかをチェックします。条件が真のため、出力は True
です。
PowerShell で文字列の始まりをチェックするための部分文字列との比較
このアプローチでは、Substring()
関数を使用して、指定されたプレフィックスを与えられた文字列の最初の部分と比較します。この比較は、文字列が事前定義された文字のシーケンスで始まるかどうかを判断するのに役立ちます。
PowerShell では、Substring メソッドを使用して指定された開始インデックスと長さに基づいて文字列からの部分を抽出できます。このメソッドを使用することで、元の文字列から部分文字列を取得し、その後、望ましいプレフィックスと比較して文字列がその特定のシーケンスで始まるかをチェックできます。
基本的な構文:
$substringToCompare = $strVal.Substring(0, $prefix.Length)
パラメータ:
$strVal
- これは元の文字列を保持している変数であり、そこから部分文字列を抽出したいと思います。0
-0
は開始インデックスです。$prefix.Length
- これは抽出される部分文字列の長さです。私たちの例では、チェックしたいプレフィックスの長さです。$substringToCompare
- これは Substring 操作の結果を保存する変数です。これは元の文字列から抽出された部分文字列を含むことになります。
上記の構文は、指定されたプレフィックスの長さと等しい長さで元の文字列から始めて部分文字列を作成します。
コード:
$strVal = 'Hello World!'
$prefix = 'Hello'
if ($strVal.Substring(0, $prefix.Length) -eq $prefix) {
Write-Output "String starts with $prefix"
}
else {
Write-Output "String does not start with $prefix"
}
出力:
String starts with Hello
このコードでは、文字列変数 $strVal = 'Hello World!'
とプレフィックス $prefix = 'Hello'
があります。インデックス 0
から始まり、プレフィックスの長さと同じ長さの部分を抽出するために Substring()
メソッドを使用します。
スクリプトは次に、この抽出された部分文字列と指定されたプレフィックスを -eq
演算子を使用して比較します。条件が真であり、文字列が 'Hello'
で始まることを示すため、出力は String starts with Hello
です。
結論
結論として、この記事では Windows PowerShell において文字列変数の始まりをチェックするためのさまざまな方法を示しました。私たちは、ワイルドカードとともにその柔軟性を示すパターンマッチングのための -like
論理演算子の使用を探りました。
さらに、ケース感度のある比較のための -clike
論理演算子についても掘り下げました。また、文字列が指定されたプレフィックスで始まるかを判定するためのケース感度およびケースに依存しないチェックを利用する StartsWith()
関数についても説明しました。
最後に、事前定義されたシーケンスと部分文字列を比較するための代替アプローチとして Substring()
関数を確認し、評価に基づいて結果を出力する事例を示しました。これらの方法は、さまざまなユースケースに対する柔軟性を提供し、PowerShell スクリプトの文字列比較機能を向上させます。
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn