【发布时间】:2018-07-25 16:49:05
【问题描述】:
我正在尝试编写一个检查操作系统主要版本的部署脚本,然后基于该版本运行命令。我可以用[System.Environment]::OSVersion.Version.Major 很好地抓住它,但是当我尝试在 if/elseif 语句中使用它时,我总是得到第一个条件,并且变量会以某种方式发生变化。
所以我用来测试的代码是这样的(使用 Windows 10 机器):
$OS_VERSION=$([System.Environment]::OSVersion.Version.Major)
if ($OS_VERSION = 6) {
Write-Output "OS Version is $OS_VERSION"
# Do stuff...
} elseif ($OS_VERSION = 10) {
Write-Output "OS Version is $OS_VERSION"
# Do different stuff..
}
我注意到,当我切换条件的顺序时,它按预期运行,更令人沮丧的是,该语句在 Windows 7 机器上运行良好。
这是我缺少的 Powershell 的错误/怪癖,还是我在做一些愚蠢的事情?
【问题讨论】:
-
您使用的是分配,而不是比较..
标签: powershell syntax conditional