powershell - 文本文件中的增量版本

标签 powershell versioning

我有一个文本文件,其中仅包含一行,其中包含我的应用程序的版本号。一个例子是 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/

相关文章:

windows - Powershell 脚本 : Can't read return value of executed program

PowerShell 获取具有最大属性值的注册表项

dependencies - 语义版本修补协议(protocol) : do you bump if dependencies bump?

powershell - 安全地访问 Key Vault secret

命令提示符 con 的 Powershell 通讯员?

powershell - 如何使用 PowerShell 替换文件中出现的每个字符串?

.net - 转移到可移植类库是一个重大变化吗?

git - 具有共享代码库的多个产品的版本控制和发布管理

javascript - 如何检测 JavaScript 使用的是哪个 Bootstrap 版本?

r - 是否可以参数化 r 包版本?