Kuidas kirjutada powershellis funktsioon?

Allikas: Teadmusbaas


PowerShell funktsiooni tähendus?

Windows PowerShell laseb sul luua funktsioone. Funktsioon on nime saanud koodi rida. Kui sa kutsud funktsiooni nime välja,siis käivitub skript selle sees. Sa saad lisada funktsioonile parameetrid, et sa saaksid kasutada sama funktsiooni teistes arvutites.

Funktsiooni süntaks (syntax)

function <nimi> \{ <script-i plokk> \}

Kuidas luua funktsiooni

Funktsioon koosneb kolmest elementist; võtmesõnast funktsioon, funktsiooni nimest ja script-ist.

Script-i plokk mis sisaladab koodi rida käivitub kui sa kutsud funktsiooni välja. Siin on üks näide mille funktsiooni nimeks on pandud Failisuurus:

function Failisuurus \{

 dir C:\Windows |
 where \{$_.length -gt 100000\}

\}

Nagu siin näha see funktsioon algab võtmesõnast function millele järgneb funktsiooni nimi. Koodi rida koosneb kahest eraldi käsust. Esimene käsklus kasutab Get-ChildItem cmdlet selleks, et saada kätte C:\Windows kausta sisu. Tulemus on teises käkluses, mis kasutab Where-Object cmdlet-i, et otsida ainult faile suuremad kui 100,000 byte-i.

Kui sa teed funktsiooni, PowerShell salvestab selle oma mällu. Kogu funktsiooni tegevuse vältel võid sa funktsiooni välja kutsuda mitu korda tahes lihtsalt sisestades selle nime nagu nt eelmises

function Filesuurus-es

Kui sa vajutad Enter-it, PowerShell käivitab koodi scriptis ja näitab tulemust.

Lisan parameetrid

Üks viis seda kasutada on lisada muutuja. Kui sa kutsud PowerShell-is funktsiooni välja siis sa saad parameetri väärtuse funktiooni nimega. Sa saad tuua väärtused massiivist funktsiooni.

Näiteks järgnev funktsioon kasutab muutujat $fast

function Failisuurus2 \{

 dir $fast\[0\] |
 where \{$_.Length -gt 100000\}

\}

Esimene käsklus kasutab ($fast\[0\]) kaustateekonna (C:\Windows) asemel. Kui kutsud välja Failisuurus2-se, siis esimene käsklus otsib kausta.

Et failisuurus2 välja kutsuda kirjuta funktsiooni nimi ja kaustateekond nede vahel peab olema tühik

Näide:

Failisuurus C:\Windows

Käsklusele vastates PowerShell kutsub välja selle funktsiooni, asendab ta $args\]0\] C:\Windows-sega ja näitab ära, selles kaustas olevad failid suuremad kui 100,000 byte-i.

Nimelised parameetrid

Et teha nimelised parameetrid peavad nad olema dollari märgiga, ja kui neid on mitu siis komaga eraldatud sulgudes funktsiooni nime taga. Näide:

function Filesuurus3 ($dir, $minSize) \{

 dir $dir |
 where \{$_.length -gt $minsize\}

\}

lisan kaks nimelist muutujat $dir ja $minsuurus. Script-is olev kood kasutab neid, et tuvastada soovitud kausta ja miinimum faili suurust (byte-ides).


Kasutatud allikad

http://www.lazywinadmin.com/2015/03/standard-and-advanced-powershell.html

http://windowsitpro.com/windows/create-your-own-powershell-functions

Koostaja: Oliver Jürisaar rühm IT14