2017-08-10 30 views
0

使用[uri]::EscapeDataString($element)可以转义每一个特殊字符,包括/,但我仍然需要url可读的报告a11ym生成。我如何才能在PowerShell中跳过&只对特定字符进行编码[PowerShell]

# Execute a11y machine 

$urls = @(
    "https://url.com/" 
    "https://url.com/jobs/intro?_ab_sessid=6f022ebc900f9cd04a6383f8eaab3c64", 
    "https://url.com/jobs/intro?_ab_sessid=6f022ebc900f9cd04a6383f8eaab3c64&mobile=false&width=675&height=500&bga=true&needsRedirect=false&jan1offset=-300&jun1offset=-240&in_iframe=1", 
    "https://url.com/jobs/search?ss=1&searchLocation=&searchCategory=&hashed=-435830103" 
    ) 

$encode = foreach ($element in $urls) { 
    [uri]::EscapeDataString($element) 
} 

a11ym -o careers_reports/$(Get-Date -UFormat "%Y-%m-%d")/ $encode 


a11ym-dashboard --root careers_reports --static-output 
+0

的转义字符是' 所以 Hey'&你好 – ArcSet

回答

0

你需要处理你不希望发生的事情,并把它们放回逃逸,它的出现,如果你想使用类方法。

([URI]::EscapeDataString($element)) -replace 'REGEXP','&' 

编辑:

$element = $element -replace '&','&' 
+0

是否有什么,我试图做一个更好的方法? – Jason

+0

@Jason我更新了我的答案。 – TheIncorrigible1

+0

不幸的是,powershell仍然在'&'in& – Jason

相关问题