背景
Powershell の起動 Version 7.* という制約があった際、
実際にどっちが動いているか分からないってことがあった
というのも、5.* 系の Powershell 使ってても、pwsh -V
って打てば 7.* 系に見えてしまうっていう話と、proile に書き込んでも反応しない!ってならないための予防策
解決策
ってことで、profile に、以下のようなものを仕込んでおくことで、起動時のバージョンと、どの profile を使ってるかを認識して使えるよって話
version & profile 表示
# get the PowerShell edition and version
$edition = $PSVersionTable.PSEdition
$version = $PSVersionTable.PSVersion
$profilePath = $MyInvocation.MyCommand.Path
# 表示するメッセージを作成
if ($edition -eq 'Core') {
$message = "PowerShell Core (pwsh) version $version"
} else {
$message = "Windows PowerShell version $version"
}
# メッセージを表示
Write-Host "$message"
Write-Host " with: $profilePath"
profile
profile は、条件によって複数読み込まれる。
以下のように、最終的に読み込まれた profile がわかることで、なにが有効になっているかを把握出来る。
分かってないと、設定したのに反応しない!って思うこともあるので。
あとがき
正直、分かってる人は分かってるので、要らないんじゃね?というオチだったりする
まぁ、-V
ではなく、$PSVersionTable
確認のほうが、version 依存しなくていいねってことが分かったので良しとする