Wget-Pedant: HTTP-Download in PowerShell


Tags: ,
I like Google Plus

Unix-Fans kennen das Wget-Kommando, das mit einem Aufruf den Inhalt einer Webseite herunterladen kann. Ein direktes Pendant gibt es bei der PowerShell nicht, aber wer in der Suchmaschine die Worte "Wget PowerShell" eingibt wird schnell fündig. Die meisten Lösungen basieren auf der WebClient-Klasse im Namespace System.Net, die sich sehr einfach ansprechen lässt.

Die im Folgenden vorgestellte function bietet auch die Möglichkeit, die Anmeldeinformation für einen Webproxy anzugeben. Dazu muss nur der Parameter -UseProxy angegeben werden.

<#
 .Synopsis
 PowerShell-Pendant für Wget
#>

function Get-WebFile
{
  param([String]$Url,[Switch]$UseProxy)

  if ($UseProxy)
  {
    $WebProxy = New-Object -Typename System.Net.WebProxy
    # Anmeldeinformation holen
    $Cred = Get-Credential
    $WebProxy.Credentials = $Cred.GetNetworkCredential()
  } 
 
  # WebClient-Objekt anlegen
  $WC = New-Object -TypeName System.Net.WebClient
 
  try
  {
   # Ist ein Proxy im Spiel?
   if ($WebProxy -ne $null)
   {
     $WC.Proxy = $WebProxy
   }
   # Datei herunterladen
   $WC.DownloadString($Url)
  }
  catch
  {
    Write-Warning "Fehler beim Download ($_)"
  }
}

Um die Function, deren Name der Verb-Haupt-Konvention folgt, etwas einfacher aufrufen zu können, wird ein Alias angelegt:

# Alias für Funktion setzen
Set-Alias -Name WGet -Value Get-WebFile

Der Aufruf sieht danach aus wie unter Unix:

wget http://www.windowspro.de


PS: Grundsätzlich ist es natürlich möglich, die Adresse und Portnummer eines Proxy anzugeben. Diese müssten als weitere Angaben (Konstruktor) beim Anlegen des neuen WebProxy-Objekts folgen:

 $WebProxy = New-Object -Typename System.Net.WebProxy "Proxy-Adresse", Portnummer

Keine Kommentare

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht angezeigt. Wenn mit Ihrer angegebenen Mail-Adresse ein Gravatar verknüpft ist, dann wird dieser neben Ihrem Kommentar eingeblendet.
  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • Zulässige HTML-Tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Zeilen und Absätze werden automatisch erzeugt.
  • Mail-Adressen werden im Seitenquelltext unkenntlich gemacht, um sie vor dem automatischen Erfassen durch Spammer zu schützen.

Weitere Informationen über Formatierungsoptionen