如何获取powerscript版本并在批处理脚本中升级?

时间:2017-06-09 16:44:29

标签: windows powershell batch-file

我试图检查批处理文件中的powerscript版本并在需要时更新版本。现在,我正在运行$ PSVersion打印出PowerShell的版本,但我不确定如何解析它。

$ PSVersion打印整个表格,当我需要的只是值(例如5.1.14393.103)

我需要做的是检查$ PSVersion是否等于版本5,如果没有,则获取版本并从互联网下载(我已经覆盖了这部分)

3 个答案:

答案 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行。