我正在尝试从变量中获取匹配的字符串。
例如,
$out = "Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\{F1E1501C-B95C-42E0-BFD4-757DF1B961D1}"
我需要"{ }"
中的值。
答案 0 :(得分:3)
您可以为此使用RegEx:
$out = "Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall{F1E1501C-B95C-42E0-BFD4-757DF1B961D1}"
$out -match "^.*{(?<guid>.*)}$" | Out-Null
然后您可以像这样访问值:
$matches.Guid
-match
会产生一个布尔值,让您知道它是否成功。在这里,我通过将其发送到Out-Null
来丢弃它,但是您可以使用它来决定是否应该进行处理,例如将其包装在if
中:
if ($out -match "^.*{(?<guid>.*)}$")
{
# Do something
}
请注意,您可以使用此处提到的模式更准确地匹配GUID: