2013-11-22 167 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