我如何确定计算机上安装了哪种版本的PowerShell,以及是否确实安装了PowerShell?
当前回答
您还可以从PowerShell命令行调用“host”命令。它应该为您提供$host变量的值。
其他回答
以下cmdlet将返回PowerShell版本。
$PSVersionTable.PSVersion.Major
只能通过从外部调用PowerShell(例如从命令提示符),使用一行代码直接检查版本
powershell -Command "$PSVersionTable.PSVersion"
根据@psaul的说法,您实际上可以有一个不知道来自何处的命令(CMD、PowerShell或Pwsh)。谢谢你。
powershell -command "(Get-Variable PSVersionTable -ValueOnly).PSVersion"
我已经测试过了,它在CMD和PowerShell上都运行得很完美。
我发现检查是否安装的最简单方法是:
运行命令提示符(“开始”、“运行”、“命令”、“确定”)键入powershell,然后单击return。然后,您应该得到PowerShell PS提示:
C:\Users\MyUser>powershell
Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.
PS C:\Users\MyUser>
然后,可以通过键入$PSVersionTable.PSVersion:
PS C:\Users\MyUser> $PSVersionTable.PSVersion
Major Minor Build Revision
----- ----- ----- --------
2 0 -1 -1
PS C:\Users\MyUser>
如果要返回到命令提示符,请键入exit(如果还要关闭命令提示符,则再次退出)。
要运行脚本,请参见http://ss64.com/ps/syntax-run.html.
我制作了一个小批量脚本,可以确定PowerShell版本:
@echo off
for /f "tokens=2 delims=:" %%a in ('powershell -Command Get-Host ^| findstr /c:Version') do (echo %%a)
这只是使用Get-Host提取PowerShell的版本并搜索字符串version
当找到具有版本的行时,它使用for命令提取版本。在本例中,我们说定界符是一个冒号,然后搜索第一个冒号,这就是我的例子5.1.183627.52。
使用$PSVersionTable.PSVersion确定引擎版本。如果变量不存在,则可以安全地假设引擎为1.0版本。
请注意,$Host.Version和(Get-Host).Version不可靠-它们反映只有主机的版本,而不是引擎。PowerGUI,PowerShellPLUS等都是托管应用程序,并且他们将设置主机的版本以反映其产品版本-这是完全正确的,但不是你想要的。
PS C:\> $PSVersionTable.PSVersion
Major Minor Build Revision
----- ----- ----- --------
4 0 -1 -1
推荐文章
- Maven检查存储库中更新的依赖项
- 如何在PowerShell中获得本地主机名?
- PowerShell:如何将数组对象转换为PowerShell中的字符串?
- 从PowerShell ISE中的另一个PS1脚本调用PowerShell脚本PS1
- 如何运行一个PowerShell脚本而不显示窗口?
- PowerShell:仅为单个命令设置环境变量
- 是否有一种方法可以通过双击.ps1文件来使PowerShell脚本工作?
- Node -使用NODE_MODULE_VERSION 51根据不同的Node.js版本编译
- PowerShell等价于grep -f
- “Write-Host”,“Write-Output”,或“[console]::WriteLine”之间的区别是什么?
- Powershell相当于bash的&号(&),用于分叉/运行后台进程
- PowerShell脚本在机器上返回。net框架的版本?
- 如何在PowerShell中获得MD5校验和
- 如何在PowerShell格式化日期时间
- PowerShell和-contains操作符