Powershellのif文の書き方

powershell学習サイト

参考記事

この記事は以下の書籍を参考に執筆されました。 詳しい内容の確認はこちらからお願いいたします。

条件文(if文)

if文の書き方は以下の通り。 JavascriptJavaC言語とif文の書き方は同じである。

if (条件式){
    # 分岐A
} else {
    # 分岐B
}

サンプルコードは以下の通り。

$condition = $true 
if ($condition ){
    Write-Output "The condition was true" 
} else {
    Write-Output "The condition was false"
    $condition = $false
}
$condition = $false
if ($condition ){
    Write-Output "The condition was true"
}else{
    Write-Output "The condition was false"
}

実行結果

The condition was true
The condition was false

if文の==は成立しない

Powershellで同じ値かどうかの確認では==は使用できません。 たとえば、以下のコードはエラーになります。

$num1 = 2
if ($num1 == 2) {
    Write-Output "The condition was true" } 
else{
    Write-Output "The condition was false"
}

ドキュメントでも以下の様に書かれている

ps1 C# のような他の言語では、等価性のチェックに == を使用する (例:5 == $value)のが一般的ですが、 これは PowerShell では機能しません。

正直いかがなものかと思う...

if文の同値評価は「-eq」

Powershellでは==の代わりに-eqを使用します。

eqとはequal(等しい、イコール)という意味です。

$num1 = 2 
if ($num1 -eq 2 ){
    Write-Output "The condition was true" 
} else{
    Write-Output "The condition was false"
}

逆に、等しくないは-neqを使用します。

$value = 5 
if ( 5 -ne $value ){
    echo "value is not equl 5" 
}else{
    echo "value is equl 5"
}

echo "chenge valu" 
$value = 4 
if ( 5 -ne $value) {
    echo "value is not equl 5" 
}else
    echo "value is equl 5"
}

Powershellでの比較記号一覧

以下はmicrosoftPowershell公式ドキュメントから

  • -gt(より大きい)
  • -igt(より大きい、大文字と小文字が区別されない)
  • -cgt(より大きい、大文字と小文字が区別される) -ge(以上)
  • -ige(以上、大文字と小文字が区別されない)
  • -cge(以上、大文字と小文字が区別される)
  • -t(より小さい)
  • -ilt(より小さい、大文字と小文字が区別されない)
  • -clt(より小さい、大文字と小文字が区別される)
  • -le(以下)
  • -ile(以下、大文字と小文字が区別されない)
  • -cle (以下、大文字と小文字が区別される)

こんなにたくさん覚えてられねぇ... ということで抜粋。以下の4つを押さえておけば問題なさそう

  • -gt(より大きい、greater thanの頭文字)
  • -ge(以上、greater Equalの頭文字)
  • -lt(より小さい、little thanの頭文字)
  • -le(以下、little Equalの頭文字)

以下サンプルコード

$bignum = 50000
if( $bignum -gt 100 ) {
    echo "$bignum > 100" 
}

初心者の方はgtを常時使用して 大きい方を右側におく癖を付けておいた方がいいかも?

title:powershellのif文について説明する description:プログラミング言語powershellの入門サイトです。今回は第二弾、条件文編 img:https://blog.hubfly.com/wp-content/uploads/2018/12/powershell.png category_script:page_name.startswith("1")