This might be over kill, but it shows the use of the type [version]
which will save the need to do string manipulation.
$file = "C:empFile.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
The file contents after this would contain 1.0.0.2
. The unfortunate part about using [version]
is that the properties are read-only, so you can't edit the numbers in place. We use the format operator to rebuild the version while incrementing the Revision
by one.
On the off chance there is some whitespace or other hidden lines in the file we ensure we get the first line only with Select -First 1
.
One of several string manipulation based solution would be to split the contents into an array and then rebuild it after changes are made.
$file = "C:empFile.txt"
$fileVersion = (Get-Content $file | Select -First 1).Split(".")
$fileVersion[3] = [int]$fileVersion[3] + 1
$fileVersion -join "." | Set-Content $file
Split the line on its periods. Then the last element (third) contains the number you want to increase. It is a string so we need to cast it as an [int]
so we get an arithmetic operation instead of a string concatenation. We then rejoin with -join
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…