VBScript の StrComp 関数の変換

Windows PowerShell

定義: 文字列比較の結果を表す値を返します。

StrComp

2 つの文字列が同一かそれとも異なっているかを調べることは可能でしょうか。それには 1 つだけ指定しなければならないことがあります。つまり、大文字と小文字を区別するか、それとも区別しないかです。

まず最初に、大文字と小文字を区別しない比較について説明しましょう。次のコマンドのセットでは、まず文字列を変数 $a と変数 $b に代入し、次に System.String クラスと Compare() メソッドを使ってその 2 つの文字列を比較しています。ここでは、Compare() メソッドに 3 つのパラメータを渡していることに注目してください。比較する 2 つの文字列と、大文字と小文字を区別するかどうかを示す値 $True です。

$a = "dog"
$b = "DOG"
$c = [String]::Compare($a,$b,$True)

このコマンドを実行して $c の値をエコーバックすると、次の結果が得られます。

0

注: 結果の 0 は 2 つの文字列が同一であることを意味しています。0 以外の値は 2 つの文字列が同一でないことを意味します。

もちろん、これらの文字列が同一と見なされるのは、大文字と小文字の区別をしない比較を行っているからです。次のコマンドでは、大文字と小文字を区別する比較を行っています。

$c = [String]::Compare($a,$b,$False)

今度は -1 が返されます。これは 2 つの文字列が同一ではないことを意味しています (なぜなら、文字の大文字小文字が同じではないからです)。

「VBScript から Windows PowerShell へ」ホーム ページに戻る