要求是修剪输出。仅保留名称中双引号中引用的输出,并删除/避免使用较早的行/字符
发件人:
$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开关吗?
您可以使用正则表达式执行此操作,以仅捕获这些字符串的引号之间的名称部分:
$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)
使匹配不区分大小写