2011-09-23 60 views
0

我有一个正则表达式,这将给计算机名,群集名称& OSINFO提取集群名称RegularExpressions

GET-QADComputer | ? {$ .osname -match“2008” - and $ .computername -match“hv”} | Select @{Name="ComputerName";Expression={$_.computername.replace("$","")}} ,@ {Name =“ClusterName”; Expression = {$ .computername.replace(“$”,“”); $ .computername.replace(“n [0-9] [0-9]”,例如,如果计算机名称的输出是ADFCGS1N01 $,那么现在我正面临的问题是解压缩集群名称,例如 ;如果计算机名称的输出是ADFCGS1N01 $,我想群集名称看起来像ADFCGSN1,我想ñ后删除所有的字符获得群集名称,

能有人帮我用同样

回答

1

这是否给你正确的价值?

Get-QADComputer -OSName *2008* -Name *hv* | Select -ExpandProperty Name 

根据您的评论,从名称的末尾删除N + 2个位数,包括美元(如果存在):

Get-QADComputer -OSName *2008* -Name *hv* | Foreach-Object {$_.Name -replace 'N\d{2}\$?$'} 
+0

PS C:\用户\ vinith> GET-QADComputer LYGTFBL1N02 $ |选择-ExpandProperty名称 LYGTFBL1N02 嗨SHay我想要的是输出为LYGTFBL1,在“N”之后应该没有字符 – PowerShell

+0

我发布的命令中的所有计算机的名称末尾都有02 $? –

+0

嗨谢伊,我想要的是所有的N [0-9] [0-9] computernames应该被替换为空,例如如果服务器名称是LHYTFC1N01,输出应该是LHYTFC1 – PowerShell