【发布时间】:2020-04-09 00:23:57
【问题描述】:
我正在尝试检查 powershell 版本,并且由于不同版本之间的命令和语法差异,我需要根据哪个版本运行特定功能。我正在尝试创建一个仅包含版本号的变量,以便于比较。这是代码。
$PSversion = {$PSVersionTable.PSVersion | sort-object major | ForEach-Object {$_.major}}
Switch ($PSversion) {
2 {V2}
4 {V4}
5 {V5}
}
function V2 {
"You have Powershell Version 2"
}
function V4 {
"You have Powershell Version 4"
}
function V5 {
"You have Powershell Version 5"
}
当我运行脚本时它返回一个空行,当我打印出变量的内容时,我得到数字和一个新行。我尝试使用替换来摆脱新行,但它总是在那里。如果我直接在powershell窗口中输入变量命令,然后打印出变量的内容,我只得到版本号,没有换行。如果我从同一个 powershell 窗口运行脚本,我什么也得不到。
对此的任何帮助将不胜感激!我不必使用这种方法,任何检查powershell版本并根据版本运行功能的方法都是我正在寻找的。
【问题讨论】:
-
将
switch语句移动到函数已定义 -
还有一个改进:
Switch ($PSVersionTable.PSVersion.Major) -
对这种方法的一般评论:最好检查特定的属性、功能或任何东西是否存在,而不是根据版本来推测它。我还建议您查看
#Requires指令。
标签: powershell