なつねこメモ

主にプログラミング関連のメモ帳 ♪(✿╹ヮ╹)ノ 書いてあるコードは自己責任でご自由にどうぞ。記事本文の無断転載は禁止です。

PowerShell で出力を無に葬り去りたい

PowerShell を使っているとき、例えば New-Item をしたときなど、別に必要ないのに丁寧な出力結果をしてくれることがある。

$ New-Item -ItemType Directory -Path ./dir

    Directory: C:\Users\natsuneko\dir

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----          2024/04/21    18:49                dir

自動化スクリプトなどを使用している場合、こういった出力は邪魔となるケースがあるため、出力して欲しくないときがある。 そういうときに使えるのが Out-Null。 こいつにパイプするだけで黙ってくれる。

$ New-Item -ItemType Directory -Path ./dir| Out-Null
# なにもでない

ちなみに Out-Null でなくとも、 $null にリダイレクト、 $null に代入、 void にキャストすることでも同じ結果を得られるらしい。

zenn.dev

パフォーマンスは Out-Null はかなり遅いようなので、繰り返し使う場合は $null へリダイレクトするのが良さそう (ほか2つは直感的ではないので......)。 公式サイトにある個人ブログ調のページでは Out-Null$null へリダイレクトする方法 (好みではないとしつつも一応 $null への代入も) が紹介されているので、 PowerShell ではこの2つを覚えておくといつでも出力を無に葬り去れそうです。

ということで、メモでした。