我需要使用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
答案 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