powershell,子字符串。用相对URL替换绝对URL
我有一个顶部导航栏,它是使用绝对URL而不是相对URL构建的,问题是,如果我将该网站集从PROD备份到QA,那么QA中的URL指向生产 因此,我试图创建一个脚本,用相对URL替换绝对URL 具体问题是:。有了已知的Url根目录和大量的Url,如何从第二个Url中删除第一个Url 例如: 如果变量中有www.mydomain.com。 第二个变量是www.mydomain.com/sites/site1 我希望它只返回/sites/site1 这就是我目前得到的powershell,子字符串。用相对URL替换绝对URL,powershell,Powershell,我有一个顶部导航栏,它是使用绝对URL而不是相对URL构建的,问题是,如果我将该网站集从PROD备份到QA,那么QA中的URL指向生产 因此,我试图创建一个脚本,用相对URL替换绝对URL 具体问题是:。有了已知的Url根目录和大量的Url,如何从第二个Url中删除第一个Url 例如: 如果变量中有www.mydomain.com。 第二个变量是www.mydomain.com/sites/site1 我希望它只返回/sites/site1 这就是我目前得到的 $var1 = "https:/
$var1 = "https://xxxx.com"
$var2 = "https://xxxxx.com/sites/10024960/"
$rootSiteCollection = Get-SPSite $siteCollectionUrl
if ($rootSiteCollection -ne $null)
{
if($Site.RootWeb.AllProperties["WebTemplate"] -eq "Client")
{
$rootWeb = $rootSiteCollection.RootWeb
$navigationNodes = $rootWeb.Navigation.TopNavigationBar
if ($navigationNodes -ne $null)
{
foreach($navNode in $navigationNodes)
{
write-host 'Old Url: ' $navNode.Url
$regex = "^$([regex]::Escape($var1))(.+)"
$var2 -replace $regex,'$1'
write-host 'New Url: ' $var2
#if($navNode.Children.Count -ge 0)
#{
# foreach($navNodeChild in $navNode.Children)
# {
# write-host 'Old Url'
# write-host $navNode.Url
# }
#}
}
}
}
}
在屏幕截图上,旧url如下所示:
新Url应为:
/Pages/clientinvoices.aspx
像这样的事
$$var1 = 'https://example.com'
$var2 = 'https://example.com/Pages/clientinvoices.aspx'
$regex = "$([regex]::Escape($var1))(.+)"
$var2 = $var2 -replace $regex,'$1'
$var2
/Pages/clientinvoices.aspx代码只输出经过修剪的字符串。我更改了代码,将结果分配回var2,以匹配您的使用情况。请使用屏幕截图查看我更新的问题,可能我不够清楚?我更新了脚本以匹配您的示例,它似乎符合您的要求。您在Var1中的url中有4个x,在var2中的url中有5个x,所以它不会匹配。这只是一个例子