PowerShellが等しくない演算子:アプリケーション、例

2021年5月24日 36291 ビュー PowerShellがオペレーターアプリケーションと等しくない、例

PowerShell NotEqual演算子は2つの値を比較します。戻ります 2つの値が等しくない場合。





さらに、比較された値が等しい場合、PowerShell Not Equal(NE)演算子は 誤り



このガイドでは、等しくない(NE)について知る必要があるすべてを学びます。 比較演算子 。さらに、ガイドには実際のSysAdminの例がたくさんあります。

Not Equal(NE)の構文から始めましょう…



投稿トピックを閲覧する



PowerShellの構文が等しくない演算子

Not Equal(NE)演算子の構文は。です。

'item 1' -ne 'item 2'

複数の値を比較する場合は、 また また オペレーター。複数の値を比較するための構文は…



('item 1' -ne 'item 2') -or ('item 3' -ne 'item 4')
('item 1' -ne 'item 2') -and ('item 3' -ne 'item 4')

PowerShell NotEqual演算子の最初の構文が再調整されます もしも アイテム1 と等しくない アイテム2 。さらに、2番目の構文では、コマンドは もしも また の両側の等しくない比較の または 演算子は



2番目の構文とは異なり また 演算子、3番目の構文(and演算子を使用)は、のみを返します 等しくない比較の場合 どちらも の側面 演算子は

最後に、ne演算子は大文字と小文字を区別しません(大文字と小文字を区別しません)。ただし、大文字と小文字を区別する場合は、次の構文を使用してください。

'item 1' -cne 'item 2'

この最後のコマンドと最初のコマンドの違いは、-の後にcが追加されることです。

PowerShellの等しくない演算子を使用してNull値または空の値をテストする方法

PowerShellの等しくない演算子を使用してNull値または空の値をテストする方法

PowerShellスクリプトでは、null値または空の値をテストする理由がたくさんあります。 neを使用して、値がnullかどうかをテストできます。

null値をテストするには、$ null自動変数を使用します。さらに、PowerShellの空の値に対してPowerShell Not Equal演算子テストを使用することもできます(引用符で囲まれていない2つの二重引用符)。

いくつかの簡単な例から始めましょう…

PowerShellプロンプトを開き、次のコマンドを実行します。

Get-Process

このコマンドは、ローカルコンピューターで実行されているすべてのプロセスを返します。私は強調しました CPU 桁。

一部のプロセスでは、 CPU 列が空白(null、空)です。

結果のみを表示するには CPU 列がnullまたは空白ではない場合は、以下のコマンドを実行してください。

Get-Process | Where-Object {$_.CPU -ne $null}

あなたが今見れば CPU 列、null値のすべての結果が削除されました!

PowerShellの等しくない演算子を使用してNull値または空の値をテストする方法

同じ原則を適用して、ステータスが実行中のコンピューター上のすべてのサービスを返すこともできます。 PowerShellコマンドは次のとおりです。

Get-Service | Where-Object -FilterScript {$_.status -ne 'Stopped'}

PowerShellでのコマンドの結果は次のとおりです。

結果の見栄えを良くするために、出力をにパイプすることができます フォーマット-テーブル –次に、ヘッダーを再配置します。変更されたコマンドは次のとおりです。

Get-Service | Where-Object -FilterScript {$_.status -ne 'Stopped'} | Format-Table Name, DisplayName, Status

そして、これがPowerShellでの結果です…

PowerShellの等しくない演算子を使用してNull値または空の値をテストする方法

PowerShell Not EqualOperatorを使用して$ Trueまたは$ Falseをテストする方法

PowerShell Not EqualOperatorを使用して$ Trueまたは$ Falseをテストする方法

ただし、コマンドでPowerShell Not Equal演算子を使用するたびに、$ Trueまたは$ Falseが返されます。次に、$ Trueまたは$ False値を使用して、それ以降のコマンドを実行します。

$ True、$ Falseは、それぞれTrueとFalseを意味する自動変数です。

例として、 Get-Process 前のセクションの例では、 $ _。CPU-ne $ null 内のステートメント Where-Object 返されたすべてのプロセスを単に返しました ステートメントについては、 $ _。CPU-ne $ null

Get-Process | Where-Object {$_.CPU -ne $null}

さらに、戻ってきたすべてのプロセス 誤り のために、 $ _。CPU-ne $ null ステートメントは返されませんでした。

ポイントを家に帰すには、PowerShellで以下のコマンドを実行します。

1 -ne 2

明らかに、1は2と等しくないため、結果はTrueを返すと予想されます。そして、これがPowerShellでの結果です…

どうですか…

1 -ne 1

戻ってきた 誤り その声明は真実ではないからです。

PowerShellが等しくない演算子の例

PowerShellが等しくない演算子の例

このセクションでは、PowerShell NotEqual演算子の2つの実用的な例について説明します。最初の例では、ne演算子を使用して複数の値または条件をテストする方法を示します。

最後に、2番目のセクションでは、IFステートメントでPowerShell NotEqual演算子を使用する方法を学習します。

PowerShellが等しくない演算子の複数の値の例

PowerShell ne演算子を使用して複数の値をテストする方法を説明するために、に戻りましょう。 Get-Service 前のセクションのコマンド例。

Get-Service | Where-Object -FilterScript {$_.status -ne 'Stopped'}

このコマンドでは、PowerShell NotEqual演算子を使用して単一の条件をテストしました。このコマンドは、ステータスがStoppedではないサービスのみを返しました。

条件は、 Where-Object コマンドの一部。コマンドの結果は次のとおりです。

予想どおり、このコマンドは、ステータスが「実行中」のすべてのサービスを返しました。

ステータスが実行中であっても一部のサービスを削除したい場合はどうなりますか?

これは、複数の値(または条件)を追加することで実現できます。 Where-Object コマンドの一部。たとえば、次のサービスを返品したくないとします– AJRouterALG 、 と AppMgmt

結果からこれらのサービスを削除するには、以下に示すように前のコマンドを変更します。

Get-Service | Where-Object -FilterScript { ($_.status -ne 'Stopped') -and ($_.Name -ne '  AJRouter  ') -and ($_.Name -ne '    ALG   ') -and ($_.Name -ne '    AppMgmt   ') }

変更されたコマンドの結果には、これら3つのサービスは含まれていません。

PowerShellが等しくない演算子の複数の値の例

または、との代わりにまたはを使用して、最後のコマンドの結果を変更することもできます。

たとえば、AppIDSvcという名前ではないすべてのサーバー、またはステータスが実行中と等しくないすべてのサービスを返すには、次のコマンドを実行します。

Get-Service | Where-Object -FilterScript {($_.status -ne 'running') -or ($_.name -ne 'AppIDSvc')}

残念ながら、結果はあまり役に立ちません。あまり役に立たない理由は次のとおりです。ステータスNOTがstoppedに等しくないサービスを削除したかったのに、またはによってリンクされた2番目の条件があるため、結果にはステータスRunningとStoppedの両方のサービスが含まれていました。

とにかく、PowerShell NotEqual演算子を使用して複数の条件をテストする方法を説明したかっただけです。

PowerShellを使用する方法がIfステートメントと等しくない

この例では、以下のテキストファイルの名前を使用してフォルダーを作成するスクリプトを作成します。

上記のテキストファイルに示されている名前を使用してフォルダを作成するスクリプトは次のとおりです。

電話はインターネットに接続されていますが機能していません
$FolderPath = 'D:PS-TutorialNewFolders' $TextFilePath = 'D:PS-Tutorialfolder-names.txt' $folderNames = Get-Content $TextFilePath ForEach ($folderName in $folderNames) { $checkPath = Test-Path $FolderPath$folderName If ($checkPath -ne $true) New-Item -Path $FolderPath -Name $folderName -ItemType 'directory' }

スクリプトを実行する前に、ここに保存されているフォルダーを示します。 FolderPath 変数(コードの1行目)。フォルダは空です。

スクリプトを試してみたい場合は、次の変数をコンピューターの既存のパスに変更してください。

$ FolderPath :新しいフォルダを作成するフォルダパス
$ TextFilePath :作成するフォルダの名前を含むテキストファイルへのフルパス。

最後に、スクリプトを実行するには、スクリプトをPowerShellISEにコピーして実行します。

スクリプトを実行すると、フォルダはで指定されたフォルダに作成されました FolderPath 変数。

以下に、スクリプトの各行が何をするかを説明しました。 PowerShell Not Equal演算子パスに注意してください– $ checkPath -not $ true パート–6行目。

$FolderPath = 'D:PS-TutorialNewFolders' $TextFilePath = 'D:PS-Tutorialfolder-names.txt' $folderNames = Get-Content $TextFilePath ForEach ($folderName in $folderNames) { $checkPath = Test-Path $FolderPath$folderName If ($checkPath -  ne  $true) New-Item -Path $FolderPath -Name $folderName -ItemType 'directory' }

スクリプトの各行の説明は次のとおりです。

    ライン1:新しいフォルダを保存するパスをという変数に保存します FolderPath
$FolderPath = 'D:PS-TutorialNewFolders' 
    2行目:フォルダ名とともにテキストファイルへのパスをという変数に保存します TextFilePath
$TextFilePath = 'D:PS-Tutorialfolder-names.txt'
    3行目:テキストファイルの内容(フォルダ名)を抽出します。 Get-Content 指図。次に、結果をに保存します folderNames 変数。
$folderNames = Get-Content $TextFilePath
    4行目:を開きます ForEach ステートメントブロック。 The ForEach ステートメントは、テキストファイルの結果を繰り返します( folderNames 変数)。次に、各反復で、フォルダーの名前を時間変数に保存します。 フォルダ名
ForEach ($folderName in $folderNames)  {  
    5行目:内で実行 ForEach ステートメントブロック:を使用します テストパス フォルダへのパスがに保存されているフォルダパスに存在するかどうかを確認するコマンド FolderPath 変数。

    の結果 テストパス コマンドは$ Trueまたは$ Falseです。
 $checkPath = Test-Path $FolderPath$folderName
    6行目:を紹介します もしも ステートメント(まだ ForEach ステートメントブロック)。ここで、PowerShell Not Equal演算子を使用して、結果が テストパス コマンドは$ Trueまたは$ Falseです。
 If ($checkPath -  ne  $true)  {  
    7行目:この行で、$ checkPath -ne $ trueが等しくない場合 、 使用 新商品 時間変数に保存された名前でフォルダーを作成するコマンド、 フォルダ名

    さらに、停止するには 新商品 結果を表示するコマンドから、パイプで アウトヌル 指図。

    最後に、 もしも 閉じ括弧付きのステートメントブロック}。
 New-Item -Path $FolderPath -Name $folderName -ItemType 'directory' | Out-Null  }  
あなたが実行する場合 新商品 配管せずにコマンド アウトヌル コマンドを実行すると、作成されたフォルダの詳細が表示されます。
    8行目: それを閉めて ForEach 閉じ括弧付きのステートメントブロック}。
}

それだ!更新されたPowerShellNot Equal(ne)オペレーターガイド。

このガイドがお役に立てば幸いです。役に立ったと思ったら、親切に投票してください はい この投稿は以下の役立つ質問でした。

または、このページの最後にある[返信を残す]フォームを使用して、質問したり、コメントを残したり、フィードバックを提供したりすることもできます。

最後に、PowerShell tech Sゾーンの詳細については、WindowsPowerShellハウツーガイドページにアクセスしてください。また、ホームページからの作業が非常に役立つ場合があります。

この記事は完全に書き直され、新しい例で更新されました。

参考文献と参考資料

  1. 比較演算子について
  2. 論理演算子について
  3. Where-Object