PowerShell におけるブーリアン値

  1. Windows PowerShell におけるブール値の定義
  2. 結論
PowerShell におけるブーリアン値

Windows PowerShell スクリプトでは、何かが真であることに基づいたロジックをよく使用します。

しかし、何かがいくつかの基準を満たさないときに対処する必要がある状況もあります。

したがって、書き込みやデバッグを行う際、PowerShell はよりポジティブなアプローチを取ります。否定を理解することが重要です。

この記事では、ネイティブコマンドや演算子を通じて PowerShell でのブール値の使用について探り、スクリプト開発におけるその多様性と重要性を示します。

Windows PowerShell におけるブール値の定義

PowerShell で何かが存在するかどうかを判断する際、私たちは $True または $False として表されるブール値について話します。

以下に示す基本的な構文は、ブールがどのように機能するかを説明します。ブール型値は、True または False を返す出力の形式です。

それでも、この構文は二つまたは複数の値を比較するために比較演算子と条件演算子を使用します。

例コード:

# Using -eq operator
"yes" -eq "yes"

# Using -ne operator
"no" -ne "no"

提供されたコードでは、 -eq 演算子を利用して、文字列 "yes""yes" に一致するかどうかを確認します。両方の文字列が同じであるため、この比較は $true を返します。

逆に、 -ne 演算子を使用して、文字列 "no""no" と異なるかどうかを調べます。しかし、両方の文字列が同じであるため、比較は $false を返します。

出力:

PowerShell のブール値 - 出力 1

ブール式を評価する際、左側の値と右側の値を比較します。左側の値が右側の値と等しい場合、それは True と評価されます。そうでない場合は False と評価されます。

-eq-ne は個々の値を比較するのに価値がありますが、and および or 演算子を使用することでより複雑な評価を達成できます。

PowerShell では、andor 演算子を使用して複数の条件を組み合わせて一緒に評価します。

例コード:

$condition1 = $true
$condition2 = $false

# Using 'and' operator
$result1 = $condition1 -and $condition2

# Using 'or' operator
$result2 = $condition1 -or $condition2

Write-Host "Result of condition1 AND condition2: $result1"
Write-Host "Result of condition1 OR condition2: $result2"

提供されたコードでは、まず $condition1$true に、 $condition2$false に設定します。次に、and 演算子を使用してこれらの条件を組み合わせます。

$condition1 が真で $condition2 が偽であるため、 $result1 の結果は $false になります。次に、同じ条件を組み合わせるために or 演算子を使用します。

少なくとも一つの条件($condition1)が真であるため、 $result2 の結果は $true になります。

出力:

PowerShell のブーリアン値 - 出力 2

ブール値を出力する方法はいくつかあり、次のセクションでそれらについて説明します。

比較演算子の使用

値を比較してブール結果を出力するために、複数の条件演算子を使用できます。

例コード:

10 -eq 10 # equal
10 -gt 20 # greater than
10 -lt 20 # less than
10 -le 11 # less than or equal
10 -ge 8 # greater than or equal

このスクリプトでは、異なる比較演算子を利用して異なる値の関係を評価します。 -eq 演算子は 1010 に等しいかどうかを評価し、これは真であり、結果として $true になります。

しかし、 -gt 演算子は 1020 より大きいかどうかを調査し、これは偽であり、したがって false になります。同様に、 -lt-le、および -ge 演算子はそれぞれ 10 が特定の値より小さいか、小さいか等しいか、大きいか等しいかを調べ、値の間で洞察に満ちた比較を行います。

出力:

PowerShell のブーリアン値 - 出力 3

PowerShell コマンドの使用

いくつかのネイティブ Windows PowerShell コマンドは、ブール値を返します。その一例が Test-Path コマンドレットです。

Test-Path コマンドレットは、ディレクトリパスがローカルマシン内に存在するかどうかを確認します。

例コード:

# Check if the directory C:\Windows\temp exists
$exists = Test-Path -Path "C:\Windows\temp"

# Print the result
Write-Host "Directory exists: $exists"

このスクリプトでは、Test-Path コマンドを使用して、ディレクトリ C:\Windows\temp がシステム上に存在するかどうかを確認します。Test-Path コマンドの結果は変数 $exists に格納され、ディレクトリが存在すれば $true になり、存在しなければ $false になります。

出力:

PowerShell のブール値 - 出力 4

いくつかのネイティブコマンドは、ブール値を出力するためにパラメータを必要とします。例えば、Test-Connection コマンドは -Quiet パラメータを使用してブール値を返します。

例コード:

# Check if we can reach www.google.com with 2 echo request packets and suppress output
$reachable = Test-Connection -ComputerName "www.google.com" -Count 2 -Quiet

# Print the result
Write-Host "Host is reachable: $reachable"

このスクリプトでは、Test-Connection コマンドを利用して www.google.com に 2つのエコー要求パケットを送り、ホストが到達可能かどうかを判断します。 -Quiet パラメータを指定することで、最終結果以外のすべての出力が抑制され、その結果は変数 $reachable に格納されます。

www.google.com が到達可能な場合、 $reachable の値は true になり、そうでない場合は false になります。

出力:

PowerShell におけるブール値 - 出力 5

結論

ブール値は PowerShell スクリプティングにおいて基本的であり、条件の評価とプログラムの流れの制御を可能にします。 $True$False は PowerShell におけるネイティブなブール表現ですが、特に外部システムや API と対話する際には 10 などの代替手段も使用できます。

-eq-ne などの比較演算子を使用することで、値の直接比較を促進し、ブールの結果を返します。さらに、Test-PathTest-Connection のような PowerShell コマンドはブール値の有用性をさらに拡大し、ディレクトリの存在やホストの到達可能性を評価する方法を提供します。

PowerShell におけるブール値を理解し効果的に利用することで、スクリプトの機能性と効率が向上し、ユーザーは堅牢で信頼性のある自動化ソリューションを作成することができます。

チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

関連記事 - PowerShell Boolean