Skip to the main content.

PowerShell-Erfolgsrezepte – die Profi-Tipps für effektives Scripting

Profi-Codierung! Hier lernst du URL-Techniken in PowerShell kennen

URLs sind überall – ob in Web Services, SharePoint oder Websites. Aber wusstest du, dass PowerShell dir helfen kann, diese scheinbar einfachen Zeichenfolgen effektiv zu codieren und zu decodieren? In diesem Artikel erfährst du alles über die verschiedenen Methoden, wie du URLs in PowerShell manipulieren kannst. Wir vergleichen die subtilen Unterschiede zwischen [System.Web.HttpUtility] und [System.Uri] und zeigen dir, welche API in welchen Situationen am besten funktioniert. Lass uns gemeinsam die Geheimnisse der URL-Manipulation entdecken.

URL-Kodierung wie ein Profi

Webdienste, SharePoint, Websites und andere Einrichtungen verwenden URLs, und obwohl URLs im Grunde genommen Zeichenketten sind, halten sie sich an bestimmte Regeln und Standards. PowerShell kann kodieren (Informationen in eine wohlgeformte URL umwandeln) und dekodieren (Informationen aus einer URL extrahieren), indem es auf entsprechende APIs zugreift.

Typischerweise verwenden PowerShell-Skripte [System.Web.HttpUtility] oder [System.Uri]. Wir werde im Folgenden beide vorstellen und ihre feinen Unterschiede hervorheben.

Hier ein Dekodierungsbeispiel:


$url = 'https://some.site/with%20spa+ces?and+arguments'
[System.Uri]::UnescapeDataString($url) 
Add-Type -AssemblyName System.Web
[System.Web.HttpUtility]::UrlDecode($url)


Das Ergebnis zeigt subtile Unterschiede - UnescapeDataString() interpretiert "+" nicht als "kodiertes Leerzeichen":


https://some.site/with spa+ces?and+arguments
https://some.site/with spa ces?and arguments 

UnescapeDataString()


Hier ein Kodierungsbeispiel:


$text = 'dieser Text (einschließlich & spezielle =? Zeichen)'
[System.Uri]::EscapeDataString($text)
[System.Web.HttpUtility]::UrlEncode($text) 


Auch hier wird das nicht standardisierte "+" nur von der HttpUtility verwendet, während EscapeDataString() die Unicode-Kodierung für alle Sonderzeichen einschließlich Leerzeichen verwendet:


this%20text%20%28including%20%26%20special%20%3D%3F%20chars%29
this+text+(einschließlich+%26+spezial+%3d%3f+Zeichen) 

EscapeDataString()

Die Wahl der richtigen API hängt von den Daten ab, mit denen du arbeitest: Wenn du sowohl kodieren als auch dekodieren (volle Kontrolle haben) willst, dann bevorzugst du vielleicht die HttpUtility-Kurzform. Wenn die Kompatibilität mit externen Quellen wichtig ist, ist für dich vielleicht die standardisiertere Methode in System.Uri passender.

 

 

Good2know

Dein ultimativer PowerShell-Spickzettel

Entfessele das volle Potenzial von PowerShell mit unserem praktischen Poster. Egal, ob frischer Einsteiger oder erfahrener Profi, dieser Spickzettel ist so konzipiert, dass du schnell die wichtigsten und am häufigsten verwendeten Cmdlets findest.

Das Poster ist zum Download und in Papierform erhältlich.

PowerShell Poster 2023

Hol dir hier dein Poster!

 

 

Weiterführende Links 

 

Zusammenhängende Posts

3 min read

Skriptabbruch verhindern: PowerShell-Fehler clever behandeln

Da $error eine globale Variable ist, solltest du in Erwägung ziehen, eine eigene Protokollierungsvariable für die...

5 min read

Mehr Ordnung in PowerShell: lagere Konfigurationsdaten einfach aus

Verabschiede dich von fest codierten Pfaden und Einstellungen! Vereinfache deine PowerShell-Skripte, indem du...

2 min read

Bahn frei, schneller zum Ziel! Streame Fehler direkt zum Handler

Hier kommt die nächste Strategie zur Fehlerbehandlung, nachdem wir zuvor die Echtzeit und verzögerte Fehlerbehandlung...

Über den Autor: