#powershell01 – Czym jest Powershell, przykłady, prosty skrypt

Cześć wszystkim, przypominam #niewychodźzdomu ! 😀
Zrzutka na maski ochronne z drukarki 3D kosz jednej 3 złote – > https://zrzutka.pl/cba7u5
Informacje o wirusie tu – > https://gregkaqa.pl/index.php/koronawirus/
Dobra zaczynamy od razu !
Dziś będzie wpis o Powershellu czyli takim następcy / dopełnieniu cmd.
Ale jak to ?
No nie oszukujmy się w CMD można wiele, można się też uprzeć i robić pętle, casy opakowane w skrypcie .bat, ale pełnia moc jeśli chodzi o skrypty na Windowsie to albo skrypty bashowe(sh) albo powershellowe(ps).
Także dziś napiszę dlaczego warto jako tester i nie tylko znać choć trochę podstawy Powershella a następnie jak ruszyć z pisaniem skryptów.

Dziś chciałem ściągnąć sobie pare filmików jako mp3 do treningu.
Takie wariacje mi czasami potrzebne, nie pytajcie po co.

To samo mogłem zrobić w CMD, a więc za pomocą powłoki PS, zrobisz to wszystko co w CMD, no może prawie wszystko.
Domyślnie ów pakiet jest dostępny od razu w najnowszych Windowsach 10.
Zakładam, że większość posiada taki system jeśli chodzi o te ze stajni MSa.

I co z tego, MS posiada takiego powershella, mam wszystkie updaty itp.

Komenda : Get-Host | Select_Object Version

https://docs.microsoft.com/pl-pl/powershell/scripting/install/installing-powershell-core-on-windows?view=powershell-7

https://github.com/PowerShell/PowerShell/releases/download/v7.0.0/PowerShell-7.0.0-win-x64.msi
Lub też najnowszy Powershell 7, można w celach testowych sprawdzić tą wersję. Tak czy siak Można instalować wersje obok siebie i bez kombinowania sprawdzić, co ciekawego MS dla nas przygotował.
Lub też jeśli nie jesteś ciekawski wersja 5.1 do złapania tu :
https://www.microsoft.com/en-us/download/details.aspx?id=54616
Tak czy siak Powershell jest po angielsku, mam polski system a wszelakie ostrzeżenia, błędy są po angielsku – więc łatwiej wyszukać rozwiązanie na Stackoverflow a nie kombinować z tłumaczeniem z polskiego.

Dobra wrzuce wam instalatora PS7 co mi tam.

Instalacja PS7

Tu sobie dodałem opcje otwórz tutaj, dla folderów przydatne. Masz folder nie trzeba cd dużo robić 😀
Instalator prawie, że dalej dalej dalej.

Zrobiłem screena z różnicy wersji, no przede wszystkim ja wole czarne motywy i na tym będę prezentować wam powershella.

Jeśli chodzi o wykorzystanie podstawowych komend CMD, będą tu szczątkowe informacje dam link do jakiejś dobrej ‘ściągi’ z komendami.
A na CMD będzie osobny wpis plus o tym jak zrobić skrypty w .bat
Jako, że już pokazałem jakiś prosty skrypt w bashu, tutaj w powershellu dodam jeszcze o .bat – to zrobię porównanie lub np. jak coś ‘wymyślonego’ napisać w każdym z trzech rodzajów skryptów.

Powershell mix CMD z Bashem

za pomocą # można sobie komentować komendy, do tego ładnie to koloruje

Get-Command – polecanie służy do wylistowania wszystkich dostępnych komend w powershellu. Jest tego od groma, więc posiłkujmy się parametrem.

Get-Command -Name cd* – taka komenda filtruje nazwę komendy jako zaczynająca się ciągiem znaków cd* a reszta to dowolne znaki. Bardzo przydatny trick.
Skąd ja to wiem, ano stąd że komendy man działają w powershellu tak jak w bashu czyli mamy man – manual 😀

Albo np. pobranie zawartości schowka i wrzucenie go do pliku ?

Proszę bardzo jakie to proste !

Trzeba naprawdę poszukać fajnych rzeczy lub mieć konkretny problem do rozwiązania. Dla zajawki wrzucam wam linka – > https://stackify.com/powershell-commands-every-developer-should-know/

Dobra najwyżej w kolejnym wpisie dotyczącym skryptów w powershellu przedstawie wam jeszcze coś ciekawego.
Pamiętajcie najważniejsze jest być dociekliwym, moje wpisy to czysta zajawka, pewnie, że czasami napiszę skrót myślowy.

Pisanie skryptów w Powershell ISE

Można pisać w notatniku, ale pozbawiamy się debugowania, a tego byśmy nie chcieli.

Odpalamy program ps ise, file new.
Mamy wygodny układ aby tworzyć łatwo skrypty.
Przekleje z MSu :
Możesz otwierać i edytować pliki programu Windows PowerShell w okienku Skrypt. Określone typy plików istotne w programie Windows PowerShell to pliki skryptów (.ps1), pliki danych skryptów (.psd1) i pliki modułów skryptów (.psm1). Te typy plików są składniowe w edytorze okienka skryptu. Inne popularne typy plików, które mogą być otwierane w okienku Skrypt, to pliki konfiguracji (.ps1xml), pliki XML i pliki tekstowe.

Bardzo fajne jest autouzupełnianie w edytorze, tak samo jak w Powershellu za pomocą przycisku tab ! Bomba !

Uruchomiłem jako administrator, w konsoli wpisałem :
Set-ExecutionPolicy RemoteSigned

Typowe hello world w ps to :
Write-Host "Gratulacje to twój pierwszy skrypt !!!"

Zróbmy coś ciekawego, bo hello to straszna nuda !!!

Czytanie z klawiatury i wstawienie do zmiennej, a następnie wyświetlenie tejże zmiennej.
Write-Host "Gratulacje to twój pierwszy skrypt !!!"
$text = read-host "Please enter your name"
Write-Host $text "hiehie"

Zastosowanie switcha reada i przesyłanie strumienia do pliku.

Jeszcze podrasujemy skrypt czymś ciekawym i wkleję cały, abyście mogli sami po tym wpisie coś pokombinować.

Write-Host "Gratulacje to twój pierwszy skrypt !!!"
Add-Type -AssemblyName System.speech
$speak = New-Object System.Speech.Synthesis.SpeechSynthesizer
$speak.Speak("Grzegorz potężny tester !!!") #motywacja :D
$text = read-host "Please enter your name"
$dd = $text +"hiehie"
Write-Host $dd
"" > C:\Users\gregk\OneDrive\Pulpit\test.txt
$i = 1
Do {"Licznik to : " + $i >> C:\Users\gregk\OneDrive\Pulpit\test.txt;$i++}
Until($i -gt 5)
$s = read-host "Dej numerek"
Switch ($s)
{
1 {
"jeden" >> C:\Users\gregk\OneDrive\Pulpit\test.txt
$dd >> C:\Users\gregk\OneDrive\Pulpit\test.txt
$s >> C:\Users\gregk\OneDrive\Pulpit\test.txt
$array = 1,2,3,4,5
$array | ForEach {Write-Host $_} >> C:\Users\gregk\OneDrive\Pulpit\test.txt
type C:\Users\gregk\OneDrive\Pulpit\test.txt
break;
}
2 {
"dwa" >> C:\Users\gregk\OneDrive\Pulpit\test.txt
$dd >> C:\Users\gregk\OneDrive\Pulpit\test.txt
$s >> C:\Users\gregk\OneDrive\Pulpit\test.txt
$array = 6,7,8,9,10
$array | ForEach {Write-Host $_} >> C:\Users\gregk\OneDrive\Pulpit\test.txt
type C:\Users\gregk\OneDrive\Pulpit\test.txt
break;
}
}

Wykorzystane write-host wyświetla na ekranie, druga linijka tak jkabym import z klasy, podstawienie do zmiennej obiektu, użycie metody na obiekcie aby mówić dany text.
Dalej co mamy zmienna do której czytujemy to co zostało wpisane z klawiatury, fajnym jest to że w read-hoost jest też od razu komunikat, a nie osobna linia specjalnie pod komentarz np. ‘wpisz imię’.
Potem przykład przypisania do nowej zmiennej innej zmiennej plus tekstu.
Dalej wysłanie pustego wiersza i jedno > strumień oznaczający nadpisuj plik. Potem mamy pętle to until, o niej możecie sobie poczytać w necie.
Potem instrukcja switch z blokami w zależności od wybranej liczby w środku dla powiększenia poruszanego dopisywanie do strumienia >> oraz lista i wrzucenie jej też do pliku tekstowego.
Wyświetlenie zawartości pliku na końcu i break.

I to by było na tyle.
W następnym wpisie o PS, skrypty robiące coś ciekawego np. scalanie listy plików tekstowych w jeden. Masowe wyszukanie i np. przerzucenie tego do konkretnego folderu. Pomyślę co ciekawego można powariować w Powershellu.
Tymczasem trzymajcie się ciepło.

Napisz komentarz