Вы можете использовать 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
производит bool, который сообщает вам, был ли он успешным или нет. Здесь я откажусь от него, отправив его на Out-Null
, но вы можете использовать его, чтобы решить, следует ли вам продолжить, скажем, завернув его в if
:
if ($out -match "^.*{(?<guid>.*)}$")
{
# Do something
}
Обратите внимание, что вы можете получить более точное соответствие для GUID, используя шаблоны, упомянутые здесь:
RegEx для GUID