我试图检查批处理文件中的powerscript版本并在需要时更新版本。现在,我正在运行$ PSVersion打印出PowerShell的版本,但我不确定如何解析它。
$ PSVersion打印整个表格,当我需要的只是值(例如5.1.14393.103)
我需要做的是检查$ PSVersion是否等于版本5,如果没有,则获取版本并从互联网下载(我已经覆盖了这部分)
答案 0 :(得分:2)
您可以查看$PSVersionTable.PSVersion.Major
,在您的示例中5
答案 1 :(得分:0)
这应该适用于PS 2.0(Win 7的默认设置)
if (($PSVersionTable.PSVersion.Major -lt 5) -and ($PSVersionTable.PSVersion.Minor -lt 1))
{#put your upgrade code here
}
else
{"PS is v 5.1"}
答案 2 :(得分:0)
以下是使用Windows注册表的方法:
turn()
如果您对输出感到满意,只需将字符串@Echo Off
Set "bK=HKLM\SOFTWARE\Microsoft\PowerShell"
Set "eK=PowerShellEngine"
Set "kV=PowerShellVersion"
For /F "Tokens=2*" %%A In ('Reg Query "%bK%\3\%eK%" /V "%kV%" 2^>Nul^
^|^|Reg Query "%bK%\1\%eK%" /V "%kV%" 2^>Nul') Do Set "pV=%%~nB"
If Not "%pV%" GEq "5" Echo Installing a newer version of PowerShell
Timeout -1
替换为实际的安装命令,然后删除Echo Installing a newer version of PowerShell
行。