1. ホーム
  2. スクリプト・コラム
  3. パワーシェル

PowerShellでは配列のフィルタリングにmatch演算子を使用する

2022-01-04 06:29:06

まず、次の例から見てみましょう。

PS C:\UsersHong> (ipconfig) -match 'IPv4'.
IPv4アドレス ... ... ... ... ... ... ... ... : 192.168.1.102
IPv4アドレス ... ... ... ... ... ... 192.168.193.1
IPv4アドレス ... ... ... ... ... ... 192.168.93.1

ipconfigは現在のコンピュータのTCP/IP設定情報を表示し、そのうちの1つがIPアドレスであることは分かっています。NICが複数ある場合や、サイト内に複数のIPアドレスが設定されている場合、それらを非常にわかりやすく表示することができます。このipconfigを例にして、マッチオペレーターフィルタリング配列の機能を説明しましょう。

ipconfigの実行結果は、おおよそこのようになるはずです。

PS C:\UsersHong> (ipconfig)

WindowsのIP設定


無線LANアダプター ローカル接続※ 13.

メディアの状態 ... ... ... ... ... ... ... ... ...メディアは切断されています。
特定のDNSサフィックスに接続中 ... ... ... ... ..:

無線LANアダプターのWi-Fiです。

特定のDNSサフィックスを接続する ... ... ... ... ... ... ..:
ローカルリンクIPv6アドレス ... ... ... ... : fe80::a438:a0ec:e477:94c6%12
IPv4アドレス ... ... ... ... ... ... ... 192.168.1.102
サブネットマスク ... ... ... ... ... ... ... ...:255.255.255.0
デフォルトゲートウェイ ... ... ... ... ... ... ... 192.168.1.1

...... (その他のNICはここでは割愛します)

ローカルに設定されているIPアドレスを確認したいのであれば、IPv4で始まる行を見ればよいのです。そして、一致させるキーワードとして "IPv4"を使用すればよいのです。つまり、PowerShellコマンドはこう書くことになる。
<スパン (ipconfig) -match 'IPv4'。

なぜここでipconfigは括弧で囲まれているのでしょうか?なぜなら、ipconfig 自身がいくつかの引数を持っていることを知っていて、システムが -match も ipconfig に割り当てた引数だと勘違いしないように、ipconfig を括弧で囲んでいるのです。括弧は優先され、ipconfig が独立した全体であることをシステムに伝えているのです。

この例では、ipconfigの実行結果は文字列の配列になります。配列の各要素は出力の各行であり、配列の要素の数だけ出力があることになります。matchパラメータは、配列の要素からマッチを見つけ、マッチした要素を出力することによって、配列に対して操作を行います。

PowerShellで配列をフィルタリングするためにmatchを使用することについてのこの記事の内容は以上です、あなたが有用であることを願っています。