Jak za pomocą Powershell ściągnąć plik z Internetu?

Oto bardzo prosty skrypt, który pozwoli Wam za pomocą powershell ściągnąć plik z internetu po protokole http.
Myślę, że użyte zmienne i składnia polecenia są na tyle zrozumiałe, że nie trzeba ich szerzej omawiać :).

$adres_url = „http://www.tajemniczastronainternetowa.ru/tajne/raport_grudzien_2015.pdf”
$zapisz_jako = „c:\temp\raport_grudzien_2015.pdf”
$webclient = New-Object System.Net.WebClient
$webclient.DownloadFile($adres_url,$zaplisz_jako)

A tutaj znajdziecie troszkę inne podejście do tego samego tematu, autorstwa Piotra.

Łukasz Skalikow

Obecnie Manager IT. Przez lata byłem Inżynierem systemów. Jestem entuzjastą i specem od vSphere, Windows serwer, GPO. Od zawsze byłem zwolennikiem wiersza poleceń i automatyzacji. Obecnie, ze względu na pracę, rodzinę i wyjazdy służbowe, dużo mniej udzielam się na blogu, ale mam nadzieję, że pośród kilkuset porad opublikowanych na spece.it, wiele osób znajdzie dla siebie coś przydatnego :)

Przeczytaj także...

15 komentarzy

  1. Zdzich napisał(a):

    Ja używam w cmd.exe polecenia bitsadmin, np. w harmonogramie do pobierania codziennie aktualnej wersji MSERT i skanowania nią serwera:

    bitsadmin /transfer msert http://definitionupdates.microsoft.com/download/definitionupdates/safetyscanner/amd64/msert.exe c:backupmsert.exe
    c:backupmsert.exe

    wyniki skanowania odkładają się domyślnie w logu:
    c:windowsdebugmsert.log

    • Łukasz Skalikow napisał(a):

      Zamierzałem wspomnieć o tej metodzie w następnych one-linerach. Gdybyś chciał dołączyć do spece.it możemy od czasu do czasu publikować Twoje wpisy. 🙂

  2. fazz01 napisał(a):

    Niestety nie działa 🙁 wywala tylko błąd:

    Exception calling „DownloadFile” with „2” argument(s): „Wystąpił wyjątek podczas żądania klienta WebClient.”
    At C:…Untitled3.ps1:4 char:1
    + $webclient.DownloadFile($adres_url,$zaplisz_jako)
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : WebException

    • Piotr Berent napisał(a):

      A co konkretnie wpisałeś?

    • Łukasz Skalikow napisał(a):

      Zacznij od upewnienia się, czy cudzysłowy „” poprawnie skopiowały się. Wpisz je ręcznie, bo przy kopiowaniu skryptu z naszej stronki prosto do konsoli może wystąpić błąd.

    • Paweł napisał(a):

      miałem ten sam problem, cudzysłowy oraz zaplisz_plik – zaplisz 😉

      ogólnie super blog, właśnie wczoraj dowiedziałem się co to powershell – fajne to 😉

  3. Co Jest doktorku? napisał(a):

    Ale pitolenia.
    „wget” i jazda maleńka, linux prawdziwy system a nie jakiś podrabianiec 🙂

  4. Bysiol napisał(a):

    A nie prościej po prostu wget z -OutFile?

  5. CiasteczkowyPotwór napisał(a):

    Można użyć również tego:

    $url = „http://StronaWWW.pdf”
    $output = „C:Temptest.pdf”
    $start_time = Get-Date

    Invoke-WebRequest -Uri $url -OutFile $output
    Write-Output „Time taken: $((Get-Date).Subtract($start_time).Seconds) second(s)”

  6. Adrian Szwejkowski napisał(a):

    a jezeli zalezy nam na nieobciazaniu lacza mozna tez wykorzystac start-bitstransfer

Dodaj komentarz