2013-11-22 168 views
1

我想从MFC * .rc文件中提取verssion数字。它看起来像:从powershell获取字符串

VALUE "FileVersion", "1.22.333.4444\0" 

其实我需要两个值 - 版本1.22.333.4444和主要版本1.22

我写了下面的代码,这让我的版本,但它看起来丑陋

$version = Get-Content -Path $rcPath | Select-String -Pattern 'FileVersion' -CaseSensitive –SimpleMatch -List | %{$_ -replace '[\\0]', ''} | %{$_ -replace '[^\d.]', ''} 

所以我的问题是:

  • 有没有简单的方法来获取版本?
  • 我如何获得主要版本?

回答

6

有一个[版本]类型可以使用为:

$text = 'VALUE "FileVersion", "1.22.333.4444\0"' 
$version = [version]($text -replace '^.+?([0-9.]+)\\.+','$1') 
$version 


Major Minor Build Revision 
----- ----- ----- -------- 
1  22  333 4444  

然后:

$version.ToString() 

1.22.333.4444 

'{0}.{1}' -f $version.major,$version.minor 

1.22