PowerShellの「$_」の意味

PowerShellPowerShell

こちらもパッと見でとっつきにくい記述ですので、記載していきます。

パイプラインに渡っているオブジェクトを表す自動変数です。
つまり、現在処理しているものを指す変数です。
といっても分かりにくいと思うので、例を見ながら理解しましょう。

パイプラインが分からない方は以下を参考にしてください。

スポンサーリンク

「$_」はパイプラインに渡されたオブジェクトの変数

以下の例ですが、Get-Processで取得したデータのIdが4340以上のものでフィルターしています。

「$_ = Get-Processで取得したデータ」つまり「$_.Id = Get-Processで取得したデータのId」ということになります。

Get-Process | Where-Object -filterScript {$_.Id -ge 4340}

 NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
 ------    -----      -----     ------      --  -- -----------
     12     6.93      10.89       6.11   20376   0 audiodg
     26    72.64     100.43     119.30    5464   2 chrome
     20    42.31      69.15       1.78    5988   2 chrome
     26    53.39      90.25       4.47    6436   2 chrome
     49   203.71     206.11     606.41    6496   2 chrome
     50    91.22     101.90     314.00    6628   2 chrome
    108   223.59     323.16   1,056.55    6772   2 chrome
.........................

例外メッセージの取得

あとよく使用される方法として、例外処理があります。

この場合はtryで発生したエラーのパイプラインがCatchに渡されてきて、エラーメッセージを取得できるといったイメージです。

try{
    Connect-SPO -SiteUrl $SiteURL -UserName $Username -Password $Password
catch{
    Write-Host "SharePointOnlineに接続できませんでした。"
    $ErrorMessage = $_.Exception.Message
    Write-Host "エラーメッセージ : $ErrorMessage"
}

まとめ

他にもわかりやすくまとめてあるサイトがあるので、少しでも参考になれば幸いです。

フリーランスを目指すなら【テックパートナーズカレッジ】

未経験者向けWEBスクール【SHElikes】

コメント

タイトルとURLをコピーしました