Powershell 解析连接字符串的属性

Powershell 解析连接字符串的属性,powershell,azure,servicebus,Powershell,Azure,Servicebus,我有一个类似下面的字符串,我需要使用PowerShell解析它。我只想将字符串保持为“EntityPath”,并去掉实体路径之后的所有内容: Endpoint=sb://abcdefg.servicebus.windows.net/;SharedAccessKeyName=listenkey_1137;SharedAccessKey=W2c26OiBwae9f/vgPcJWgtD709oTTJu1VlB8i4OkqUc=;EntityPath=listen_1137 这可能行得通我不确定你现在

我有一个类似下面的字符串,我需要使用PowerShell解析它。我只想将字符串保持为“EntityPath”,并去掉实体路径之后的所有内容:

Endpoint=sb://abcdefg.servicebus.windows.net/;SharedAccessKeyName=listenkey_1137;SharedAccessKey=W2c26OiBwae9f/vgPcJWgtD709oTTJu1VlB8i4OkqUc=;EntityPath=listen_1137

这可能行得通

我不确定你现在在问什么,但我想这是第二个问题。我会尽力理解你的问题,因为这是一个有点蹩脚的英语问题

function Invoke-MyWork($testStr)
{
     $parts = $testStr -split "EntityPath"
     $parts[0]
}
$originalValue = "Endpoint=sb://abcdefg.servicebus.windows.net/;SharedAccessKeyName=listenkey_1137;SharedAccessKey=W2c26OiBwae9f/vgPcJWgtD709oTTJu1VlB8i4OkqUc=;EntityPath=listen_1137"

$upToEntityPath = Invoke-MyWork $originalValue


Write-Host "UpToEntityPath: $($upToEntityPath)"
Write-Host "OriginalValue: $($originalValue)"
这里有一个使用正则表达式的解决方案

试试这个:

$mystring="Endpoint=sb://abcdefg.servicebus.windows.net/;SharedAccessKeyName=listenkey_1137;SharedAccessKey=W2c26OiBwae9f/vgPcJWgtD709oTTJu1VlB8i4OkqUc=;EntityPath=listen_1137"
$NameValue=$mystring -replace ";", "`n" | ConvertFrom-StringData
$NameValue.EntityPath
可能重复的
$ep = "Endpoint=sb://abcdefg.servicebus.windows.net/;SharedAccessKeyName=listenkey_1137;SharedAccessKey=W2c26OiBwae9f/vgPcJWgtD709oTTJu1VlB8i4OkqUc=;EntityPath=listen_1137"
[regex]::Match($ep, 'EntityPath=([^;|\s]+)').Groups[1].Value # output: listen_1137
[regex]::Match($ep, '(EntityPath=[^;|\s]+)').Groups[1].Value # output: EntityPath=listen_1137
$mystring="Endpoint=sb://abcdefg.servicebus.windows.net/;SharedAccessKeyName=listenkey_1137;SharedAccessKey=W2c26OiBwae9f/vgPcJWgtD709oTTJu1VlB8i4OkqUc=;EntityPath=listen_1137"
$NameValue=$mystring -replace ";", "`n" | ConvertFrom-StringData
$NameValue.EntityPath