PowerShell 技能连载 - 是否在 Windows PowerShell 中运行(第 2 部分)
在上一个技能中,我们介绍了一个向后兼容的单行代码,能够判断您的脚本是否运行在传统的 Windows PowerShell 环境中,还是运行在新的 PowerShell 7 便携版 shell 中。
如果您使用的是跨平台的 PowerShell 7,那么有一个名为 [Management.Automation.platform]
的新类型,能返回更多的平台信息。Windows PowerShell 尚未包含此类型,因此您可以使用此类型来确定您是否当前正在 Windows PowerShell 上运行。如果没有,则该类型提供了额外的平台信息:
1 | # testing whether type exists |
在 Windows PowerShell 上,脚本只会产生警告。 在 PowerShell 7 上,它返回一个哈希表,其中包含所有相关平台信息:
Name Value
---- -----
IsStaSupported True
IsLinux False
IsCoreCLR True
IsWindows True
IsNanoServer False
IsMacOS False
IsWindowsDesktop True
IsIoT False