我正在使用以下功能来确定该版本是Major,Patch还是Invalid。
Function Compare-Version {
[cmdletBinding()]
Param (
[version] $old,
[Version] $New
)
If ( $New -le $Old ) { return "Invalid" }
ElseIf ( $new.Major -eq $Old.Major -And $New.Minor -gt $Old.Minor ) { return "Patch" }
ElseIf ($new -gt $old) { return "Major" }
}
$TypeOfRelease = Compare-Version -Old "245.1" -New "246.1"
If ($TypeOfRelease -eq "Invalid" ) { "No operation"}
ElseIf ($TypeOfRelease -eq "Major") {"Change guid to support migration"}
Elseif ($TypeOfRelease -eq "Point") {"Just change the version don't upgrade GUID")
我希望枚举可以是正确的选择,而不是字符串。如何将enum作为输出结果发送并在powershell中进行比较
答案 0 :(得分:4)
在PowerShell v5中,您可以直接声明枚举,例如:
enum VersionCompare { Invalid; Major; Patch }
在v3中,您需要使用Add-Type,例如:
PS> Add-Type -TypeDefinition 'public enum VersionCompare { Invalid, Major, Patch }'
PS> [VersionCompare]::Invalid
Invalid