将pom.xml版本转换为数字格式

时间:2019-01-18 08:32:34

标签: powershell

我需要使用powershell脚本将pom.xml版本读取和增加1。

我能够获取版本值,例如:1.0.123,但是此处给出的类型是字符串,当我尝试将其转换为Decimal或Double时,我得到以下错误提示:

代码:

PS C:\Users\XXXX\Downloads> $finale
1.0.153

PS C:\Users\XXXX\Downloads> $finale.GetType()

IsPublic IsSerial Name                                     BaseType                                                                                                      
-------- -------- ----                                     --------                                                                                                      
True     True     String                                   System.Object 

错误:

PS C:\Users\XXXX\Downloads> $finale1 = [Double]::Parse($finale)
  

使用“ 1”参数调用“解析”的异常:“输入字符串的格式不正确。”   在第1行:char:1   + $ finale1 = [Double] :: Parse($ finale)   + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       + CategoryInfo:未指定:(:) [],MethodInvocationException       + FullyQualifiedErrorId:FormatException

2 个答案:

答案 0 :(得分:2)

原因是1.0.123不是数学。它是整数,也不是双精度数。它只是一个包含数字和符号的字符串。这就是为什么您得到此错误。

请参阅以下帮助文件: About_Arithmetic_Operators .NET Math Class

答案 1 :(得分:1)

使用[version]类型很好,但是它是不可变的。这段代码将其拆分为一个数组,递增第三个(生成)编号,并在$ newfinale中生成一个字符串。

请注意,这不会检查是否存在第三个(构建)值。如果$ finale为'1.2',则会产生异常。

PS C:\> $finale = '2.3.4.5'
PS C:\> $a = $finale.split('.')
PS C:\> $a[2] = [int]$a[2] + 1
PS C:\> $newfinale = $a -join '.'
PS C:\> $newfinale
2.3.5.5