powershell 提取URL的第一部分

rdlzhqv9  于 2023-02-04  发布在  Shell
关注(0)|答案(1)|浏览(163)

我有一个网址是这样的:
https://www.example.com/oauth/connect/token
我只想得到https://www.example.com,我已经尝试了很多方法来得到它,但是我尝试过的所有方法都要求我硬编码多个/
示例:
$Url.Split('/')[0] + "//" + $url.split('/')[2]
有没有不使用编码的方法?

yqhsw0fo

yqhsw0fo1#

您可以使用[System.Uri]将字符串“强制转换”为System.Uri类。

$url = [System.Uri]"https://www.example.com/oauth/connect/token"

然后,您可以使用hostscheme获取所需的URL部分。

$result = $url.Scheme, $url.Host -join "://"

您还可以从整个URL中删除AbsolutePath

$url = [System.Uri]"https://www.example.com/oauth/connect/token"

$result = $url.AbsoluteUri.Replace($url.AbsolutePath, "")

以下是System.Uri示例将具有的属性的完整列表:

AbsolutePath   : /oauth/connect/token
AbsoluteUri    : https://www.example.com/oauth/connect/token
LocalPath      : /oauth/connect/token
Authority      : www.example.com
HostNameType   : Dns
IsDefaultPort  : True
IsFile         : False
IsLoopback     : False
PathAndQuery   : /oauth/connect/token
Segments       : {/, oauth/, connect/, token}
IsUnc          : False
Host           : www.example.com
Port           : 443
Query          :
Fragment       :
Scheme         : https
OriginalString : https://www.example.com/oauth/connect/token
DnsSafeHost    : www.example.com
IdnHost        : www.example.com
IsAbsoluteUri  : True
UserEscaped    : False
UserInfo       :

相关问题