2017-08-10 1 views
0

En utilisant [uri]::EscapeDataString($element) échappe tous les caractères spéciaux, y compris /, mais je dois encore les urls lisibles pour le rapport a11ym génère. Comment pourrais-je échapper & en PowerShell?Seuls encode les caractères spécifiques [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

L'évasion est omble ' Alors Hey' & Bonjour – ArcSet

Répondre

0

Vous aurez besoin de traiter les évasions que vous ne voulez pas arriver et les remettre dans, il semble, si vous voulez utiliser cette méthode de classe.

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

Edit:

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

Y at-il une meilleure méthode pour ce que je suis en train de faire? – Jason

+0

@Jason J'ai mis à jour ma réponse. – TheIncorrigible1

+0

malheureusement, powershell échoue toujours sur le '&' dans '& amp' – Jason