➡️

Bashに慣れた人向けのPowershell機能備忘録

2023/11/14に公開

VBScriptが非推奨になったこともあり、Powershell の需要が高まっているかと思います。
この記事は、主に Bash に慣れている人が、「Bash で言うところの XXXX という機能は Powershell だとどうなるんだろうな?」 という疑問に対する回答を集め備た忘録です。

コマンドライン引数の取得

コマンドライン引数は、配列 $args で取得できる。

参考: Windows PowerShell クイック リファレンス

コマンドライン引数を shift する

Bash の場合、コマンドライン引数を一つずらすには、 shift というコマンドがありますが、Powershell の場合はそれに該当するコマンドはありません。

ただし、変数 $args は一般的な配列ですので、以下のようにして先頭の要素を捨てる事はできます。

$null, $args = $args

Boolean の定数

$true$false というプリセットの定数Powershell では「自動変数」といいます)が用意されています。

標準出力にプリントする echo

Write-Output "Some String"

Write-Output のエイリアスとして echo というコマンドもあるので、以下のような書き方もできます。

echo "Some String"

ちなみに、標準出力と関係なくコンソールに出力したい場合は Write-Host というコマンドも使えます。

標準エラー出力にプリントする(ついでに例外を Throw することもできる)

Write-Error "Some String"

とすると、エラー出力ができる。

ついでに例外をスローして停止する場合は -ErrorAction オプションを付ける

Write-Error "Some String" -ErrorAction Stop

https://learn.microsoft.com/ja-jp/powershell/scripting/learn/deep-dives/everything-about-exceptions?view=powershell-7.4

復帰不可能な種類のエラーの場合は、こちらにしてしまう方が便利な場合が多い。

Discussion