2011-11-23 66 views
1

我需要PowerShell脚本的帮助。帮助PowerShell获得部分价值

我有一个值 - 2.0.0.0(它可能是与3个句号分隔的任何值)

我想刚才得到的前三个数字,例如2.0.0

使用PowerShell,怎么我可以这样做吗?

回答

2

正则表达式是一种灵活的方式来做到这一点:

"1.2.3.4" -replace "(.*)\.(.*)\.(.*)\.(.*)",'$1.$2.$3' 

或吉文利维的回答启发:

你可以使用toString方法与三场的场数:

([version]"1.2.3.4").tostring(3) 
+1

Oooh ...和“现在你有两个问题”解决方案胜出。 :) – EBGreen

1

像这样:

$a = "2.0.0.0" 

$a.Remove($a.LastIndexOf('.')) 

2.0.0 
0

什么都没有错其他的答案,而只是表现出更多的多样性:

[string]::Join('.', '2.0.0.0'.Split('.')[0..2]) 
4

这里的另一种方式:

PS> '2.0.0.0'.split('.')[0..2] -join '.' 
2.0.0 

顺便说一句,你可以将它转换为system.version对象并使用它的属性:

PS> [version]'2.0.0.0' 

Major Minor Build Revision 
----- ----- ----- -------- 
2  0  0  0