wget w wersji PowerShell


 

metro-powershell-logo

Wow! Jak to miło powrócić do pisania skryptów! Dziś chciałem koniecznie coś ściągnąć korzystając z serwera w wersji Core. Czyli wiadomka – PowerShell i notatnik. Ale lepsze to niż sam notatnik. Tak więc nie pozostało nic innego jak napisać szybki i przyjemny skrypt. (Dla zainteresowanych – skrypt ma konstrukcję cepa, bo ma służyć walorom edukacyjnym, a i tak robi to co powinien robić). Zasadniczo chyba mogę śmiało powiedzieć, że sytuacja dojrzała do tego, aby wskrzesić „Szkołę Skryptowania”. Cieszycie się?

Jak pisałem kiedyś, istnieje co prawda w PowerShellu alias „wget”, ale nie do końca działa on tak jak powinien :) Nie pozostało mi nic innego jak nieco obudować funkcję Invoke-WebRequest tak, aby można było korzystać w prostu sposób z możliwości ściągania plików przez PSH. Wiadomo, że aby coś ściągnąć trzeba wiedzieć skąd, ale też trzeba to gdzieś zapisać – a tego już Invoke-WebRequest nie robi (tzn. robi, ale trzeba podać dodatkowy parametr). Nie wiem jak Wam, ale ja lubię mieć porządek szczególnie w ściąganych rzeczach dlatego tez, zawsze wrzucam wszystko do domyślnego katalogu „Pobrane” (Downloads w wersji ang.) Tak więc dokleiłem tą ścieżkę na sztywno do skryptu. 

A o to i on:

$user = $env:USERPROFILE
$zapisz_w = $user + '\Downloads\'
$plik_www = $args[0]
$index = $test.LastIndexOf("\")
$test2 = $test.Length
$plik = $test.Substring($index +1)
$sciezka_zapisu = $zapisz_w + $plik
Invoke-WebRequest -Uri $plik_www -OutFile $sciezka_zapisu 
Write-Host 'Plik ściągniety: '$sciezka_zapisu

Sugeruję zapisanie go jednak inaczej niż wget, ze względu na wspomniany wcześniej alias. Ja użyłem nazwy sciagnij.ps1, ale nie będę się już czepiał nazewnictwa :) Skrypt używamy tylko z adresem url pliku jaki ma zostać pobrany:

.\sciagnij.ps1 http://ipv4.download.thinkbroadband.com/10MB.zip
Plik ściągniety: C:\Users\pbere\Downloads\test.zip

Plik ściągnięty został do katalogu „Pobrane” (Downloads) w katalogu użytkownika. A na koniec trzeba postawić bardzo ważne pytanie: Czy chcecie, aby wróciła „Szkoła Skryptowania„?

 


Podobne Tematy:

  • Pawel Woch

    Oczywiście że chcę by szkoła skryptowania wróciła :)

  • crd

    No pewnie. Lubię takie male proste skrypty

  • scribe_pl

    czekam na szkolę skryptowania

  • viTo

    również czekam na szkołę!!!

  • Krzysztof kuczyński

    Witam
    W skrypcie chyba jest błąd.
    zmienną $test powinno się zastąpić zmienną $plik_www