Trim Powershell输出

问题描述 投票:0回答:1

要求是修剪输出。仅保留名称中双引号中引用的输出,并删除/避免使用较早的行/字符

发件人:

$R.Output = \\GBVServer1\root\cimv2:Win32_Group.Domain="Contoso",Name="Domain Users"

$R.Output = \\GBVServer1\root\cimv2:Win32_SystemAccount.Domain="GBVServer1",Name="INTERACTIVE"

收件人:

$R.Output = Domain Users

$R.Output = INTERACTIVE

有人可以协助使用Powershell开关吗?

powershell trim character-trimming
1个回答
0
投票

您可以使用正则表达式执行此操作,以仅捕获这些字符串的引号之间的名称部分:

$regex = [regex]'(?i)Name="([^,]+)"'

$string = '\\GBVServer1\root\cimv2:Win32_Group.Domain="Contoso",Name="Domain Users"'
$R.Output = $regex.Match($string).Groups[1].Value  # --> Domain Users

$string = '\\GBVServer1\root\cimv2:Win32_SystemAccount.Domain="GBVServer1",Name="INTERACTIVE"'
$R.Output = $regex.Match($string).Groups[1].Value  # --> INTERACTIVE

正则表达式详细信息:

Name =“从字面上匹配字符“ Name =””(匹配下面的正则表达式并将其匹配捕获到反向引用1中   [^,]匹配非“,”的任何字符      +一次至无限次,尽可能多次,并根据需要进行回馈(贪婪))“从字面上匹配字符“””

(?i)使匹配不区分大小写

© www.soinside.com 2019 - 2024. All rights reserved.