- 文字列比較
大文字/小文字区別のなしの場合は -eq -ne -lt -le -gt -ge
PS> "A" -eq "a" True PS> "A" -ne "a" False
大文字/小文字区別の場合は -ceq -cne -clt -cle -cgt -cge と c をつける。
PS> "A" -ceq "a" False PS> "A" -cne "a" True
ただ、これらの演算子には罠があり、なぜか以下の場合は True になるので注意。
PS> "ー" -ceq "々" True
どうしても上記を回避したい場合は、string クラスの Equals メソッドを使います。
PS> "ー".Equals("々") False PS> [string]::Equals("ー","々") False
- 正規表現一致
大文字/小文字区別のなしの場合は -match -replace
PS> "ABCDEabcde" -match "b.*d" True PS> $matches[0] BCDEabcd PS> "ABCDEabcde" -replace "b.*d","★" A★e
大文字/小文字区別の場合は -cmatch -creplace
PS> "ABcdE" -match "b.*d" True PS> $matches[0] bcd PS> "ABcdE" -replace "b.*d","★" ABCDEa★e
一致文字列を取得する場合は、$Matches を参照します。
PS> $a = "AAAAAA_20141014_BBBBB" PS> $a -match "_(.*)_" True PS> $Matches Name Value ---- ----- 1 20141014 0 _20141014_ PS> $Matches[1] 20141014
一致箇所に名前を付けたい場合は、正規表現中に (?<変数名>正規表現)と記述することで名前付けをします。
PS> $a = "AAAAAA_20141014_BBBBB" PS> $a -match "_(?<name>.*)_" True PS> $Matches Name Value ---- ----- name 20141014 0 _20141014_ PS> $Matches["name"] 20141014
- 書式整形
-f を使用します。
PS> "現在{0: d}日の {0:H:mm} です。" -f (Get-Date) 現在 4日の 22:21 です。 PS> "{0:0.000} {1:0.###}" -f 12.3,45.6 12.300 45.6