Windows/Linux/OSX 上の PowerShell バージョン 6.1 が GA になったため、$PSVersionTable
の新しいプロパティを使用できます。 、 OS
、 Platform
と GitCommitId
更新 v6.0.0-beta.3 には breaking changes
がいくつかあります :
- powershell.exe の位置パラメータを -Command から -File に変更
$PSVersionTable
オン :
プラットフォーム Win32NT
OS Microsoft Windows 10.0.15063
PS C:\Users\LotPings> $PSVersionTable
Name Value
---- -----
PSVersion 6.1.0
PSEdition Core
GitCommitId 6.1.0
OS Microsoft Windows 10.0.17134
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
プラットフォーム Unix
OS Linux (ubuntu)
PS /home/LotPings> $PSVersionTable
Name Value
---- -----
PSVersion 6.1.0
PSEdition Core
GitCommitId 6.1.0
OS Linux 4.15.0-34-generic #37-Ubuntu SMP Mon Aug 27 15:21:48 UTC 2018
Platform Unix
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
プラットフォーム Unix
OS Darwin
PS /Users/LotPings> $PSVersionTable
Name Value
---- -----
PSVersion 6.1.0
PSEdition Core
GitCommitId 6.1.0
OS Darwin 17.7.0 Darwin Kernel Version 17.7.0: Thu Jun 21 22:53:14 PDT 2018; root:xnu-4570.71.2~1/RE...
Platform Unix
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
実際には、PowerShell コンソール自体によってグローバル変数が追加されているはずです。ただし、これらは環境変数とは見なされないため、dir env:
を使用すると表示されません。 リストを取得します。私が今見ている OS 固有のものは $IsLinux
です 、 IsMacOS
と $IsWindows
.これは、Mac/Linux 用の少なくとも PowerShell バージョン 6.0.0-rc 以降のものです。
Get-Variable
を使用するだけで、利用可能なもののリストを表示できます (デフォルトで組み込まれているものだけが必要な場合は、プロファイルをロードせずに新しいセッションで)。
PowerShell Core (Powershell バージョン 6.0 以降) の場合、自動変数を使用できます:$IsLinux
、 $IsMacOS
と $IsWindows
.
たとえば、
if ($IsLinux) {
Write-Host "Linux"
}
elseif ($IsMacOS) {
Write-Host "macOS"
}
elseif ($IsWindows) {
Write-Host "Windows"
}
OS の他のプラットフォームで表示できる環境変数はありませんか?
Get-ChildItem -Path Env:
特に、少なくとも Windows では、OS 環境変数があるため、すべき $Env:OS
を使用してこれを達成できる .
しばらく経ち、PowerShell コア (v6) 製品は現在 GA です (コア ブランディングは v7 の時点で削除されているため、次の自動ブール変数に基づいてプラットフォームをより正確に判断できます:
$IsMacOS
$IsLinux
$IsWindows