wget w wersji PowerShell
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„?
Oczywiście że chcę by szkoła skryptowania wróciła 🙂
No pewnie. Lubię takie male proste skrypty
czekam na szkolę skryptowania
również czekam na szkołę!!!
Witam
W skrypcie chyba jest błąd.
zmienną $test powinno się zastąpić zmienną $plik_www