使用powershell从字符串获取子字符串

时间:2013-11-22 13:31:34

标签: powershell

我想从MFC * .rc文件中提取verssion编号。它看起来像:

  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.]', ''}

所以我的问题是:

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

1 个答案:

答案 0 :(得分: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