我有一个文本文件,其中仅包含一行,其中包含我的应用程序的版本号。一个例子是 1.0.0.1。我想增加内部版本号。使用我的示例,我将在同一个文本文件中获得输出 1.0.0.2。
如何使用 PowerShell 执行此操作?
最佳答案
这可能会结束,但它显示了类型 [version]
的使用这将节省进行字符串操作的需要。
$file = "C:\temp\File.txt"
$fileVersion = [version](Get-Content $file | Select -First 1)
$newVersion = "{0}.{1}.{2}.{3}" -f $fileVersion.Major, $fileVersion.Minor, $fileVersion.Build, ($fileVersion.Revision + 1)
$newVersion | Set-Content $file
此后的文件内容将包含
1.0.0.2
.关于使用 [version]
的不幸部分是属性是只读的,所以你不能就地编辑数字。我们使用格式运算符来重建版本,同时增加 Revision
由一个。如果文件中有一些空白或其他隐藏行,我们确保我们只使用
Select -First 1
获得第一行。 .几种基于字符串操作的解决方案之一是将内容拆分为一个数组,然后在进行更改后重建它。
$file = "C:\temp\File.txt"
$fileVersion = (Get-Content $file | Select -First 1).Split(".")
$fileVersion[3] = [int]$fileVersion[3] + 1
$fileVersion -join "." | Set-Content $file
按其周期分割线。然后最后一个元素(第三个)包含您要增加的数字。它是一个字符串,所以我们需要将它转换为
[int]
所以我们得到一个算术运算而不是字符串连接。然后我们重新加入 -join
.
关于powershell - 文本文件中的增量版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30195025/