我正在尝试检查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"
}
Run Code Online (Sandbox Code Playgroud)
当我运行脚本时,它返回一个空行,当我打印出变量的内容时,我得到了数字和一个新行.我已经尝试使用替换来摆脱新线路,但它始终存在.如果我将变量命令直接输入到PowerShell窗口,然后打印出变量的内容,我只得到版本号,没有新行.如果我从同一个PowerShell窗口运行脚本,我什么也得不到.
任何有关这方面的帮助将不胜感激!我没有必要使用这种方法,任何方法来检查powershell版本并运行基于版本的功能都是我正在寻找的.
除了@ MathiasRJesson关于在使用函数之前将函数移动到其中的注释之外,您还要为$PSversion变量分配一个scriptblock .它没有评估它.
这个:
$PSversion = {$PSVersionTable.PSVersion | sort-object major | ForEach-Object {$_.major}}
Run Code Online (Sandbox Code Playgroud)
应该:
$PSversion = $PSVersionTable.PSVersion | sort-object major | ForEach-Object {$_.major}
Run Code Online (Sandbox Code Playgroud)
或者可能只是:
$PSversion = $PSVersionTable.PSVersion.Major
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9983 次 |
| 最近记录: |