I min forrige artikkel, viste jeg deg hvordan du oppretter en funksjon i Windows Powershell. Min opprinnelige hensikten hadde vært å avslutte serien der. Etter å ha skrevet den artikkelen derimot, innså jeg at det var et par andre viktige ting som jeg trengte å snakke om før du avslutter denne serien.
En av de tingene som jeg fortsatt trenger å dekke er bruken av parametere. Jeg viste deg hvordan du bruker en funksjon, men den funksjonen som jeg brukte i mitt eksempel var relativt statisk. I den virkelige verden, er parametere ofte gått til og fra funksjoner. Derfor ønsker jeg å tilbringe resten av denne artikkelen snakker litt mer om Powershell funksjoner.
En annen ting som jeg innså at jeg aldri snakket om var koblingen mellom Powershell og .NET Framework. Du kan bruke .NET å gjøre alle slags kule ting i Powershell, slik at ’ s hva jeg har tenkt å snakke om i del 8. Så nå som jeg har gitt deg en forhåndsvisning av der jeg har tenkt å gå med denne serien, la ’ s komme til saken.
Som du kanskje husker fra forrige artikkel, laget jeg en enkel funksjon som kontrollerer verdien av en variabel for å se om nummeret som er knyttet til variabelen er større enn null. Selve koden som jeg brukte er vist nedenfor:
Funksjon VarCheck $X=4 The Skriptet setter en variabel kalt $ X til 4 og deretter kaller funksjonen VarCheck og sjekker for å se om den variable ’ s innholdet (i dette tilfellet 4) er større enn 0. Manuset deretter setter variabel til 0, kaller VarCheck funksjon og sjekker for å se om den variable ’ s innholdet (i dette tilfellet 0) er større enn 0. Til slutt setter skriptet variabelen ’ s innhold til 1, kaller VarCheck funksjon, og sjekker for å se om den variable ’ s innholdet (i dette tilfellet 1) er større enn 0. Du kan se manuset ’ s produksjon i figur A nedenfor Figur A:.. Dette er resultatet fra min tidligere opprettet Powershell script Så som du kan se, skriptet fungerer akkurat som det skal. Da jeg skrev dette manuset men jeg skrev det på en måte som jeg håpet ville illustrere hvordan å kalle en funksjon, uten å være forvirrende i prosessen. Faktisk utgjør skriptet den enkleste måten å bruke en funksjon. I skriptet har jeg laget en navngitt funksjon kalt VarCheck og helst at jeg må ringe funksjon jeg bare behandle VarCheck som om det var en innfødt kommando. Den metoden som jeg brukte får jobben gjort, men Dette isn ’ t slik at Powershell fungerer vanligvis arbeider. Som du så i manuset, ville jeg erklære en variabel og deretter kaller funksjonen. Oftere imidlertid Powershell script bare passere en verdi til en funksjon heller enn å prøve å bruke en variabel som har blitt erklært andre steder (selv om de to metodene kan kombineres). La meg vise deg hvordan det fungerer La ’ s. Late som jeg trenger for min skript for å gjøre det samme som det gjør nå, men uansett grunn jeg ønsker å sende verdier direkte til min funksjon fremfor gjør bruk av en variabel. Hvis det er målet da funksjonen måtte endres for å se ut som blokk med kode vist nedenfor: Funksjon VarCheck ($ arg1) VarCheck 4 Dette skriptet gjør ganske mye det samme som skript som vi laget før, men det er to forskjeller. Den første forskjellen er at nå har vi sende verdier for funksjonen i stedet for å erklære variabler innenfor hoveddelen av koden. Den andre forskjellen er at jeg har endret produksjonen litt som en måte å gjøre produksjonen mer tydelig Med det sagt, la ’ s. Trinn gjennom koden og se hvordan dette skriptet fungerer. Min første linje med kode definerer en navngitt funksjon. Akkurat som før, jeg kaller denne funksjonen VarCheck. Det som er forskjellig fra min forrige script er at funksjonsnavnet (i dette tilfellet VarCheck) etterfølges av: ($ Arg1) Dette er hvordan vi forteller Powershell at vi kommer til å være bestått en parameter ( noen ganger kalt et argument, derav navnet Arg1) til funksjonen. Nå, hvis du ser nøye, vil du legge merke til at $ Arg1 er en variabel fordi dens første tegnet er et dollartegn. Denne variabelen arver automatisk uansett verdi sendes til funksjonen. Derfor, hvis vi passert en verdi på 4 til funksjonen deretter $ arg1 ville inneholde en verdi på 4. Den andre og fjerde linjer med kode inneholder et sett med tannregulering ({}). Husk at koden blokk som er assosiert med en Powershell funksjon alltid i klammeparenteser. Disse tannregulering definere begynnelsen og slutten av funksjonen ’ s kode Denne spesielle funksjonen bruker bare en eneste linje med kode.. Det ’ s linjen som vises mellom de to bukseseler. Denne linjen hvis veldig likt det vi brukte i den opprinnelige funksjon, men det er to endringer. Til mer tydelig illustrere disse endringene, la meg vise deg både den gamle og den nye versjonen av denne linjen med kode: Dette er hvordan linjen opprinnelig så: Hvis ($ X -GT 0) {"Bigger than Zero"} Dette er hvordan linjen ser ut nå: Hvis ($ arg1 -GT 0) {echo $ arg1 "er større enn null"} I begge tilfeller kodelinje er å sjekke en variabel for å se om den er større enn (-GT) null. I den opprinnelige versjonen, koden sjekket verdien av $ X. Som dere husker imidlertid doesn vår nye manus ’ t bruke $ X variabel. Vi passerer verdier direkte til funksjonen og funksjonen tildeler disse verdiene til variabelen $ arg1. Derfor den nye funksjonen sammen $ arg1 til 0 i stedet for å sammenligne $ X til null. I begge linjer med kode, er vi i hovedsak utfører en hvis da. Begge linjer med kode begynner med en if og deretter etablere en betingelse. Tilstanden er vedlagt i parentes og i hvert fall sammenligner verdien av en variabel mot 0. Den neste delen av linjen er den “ deretter ”. Dette er den delen av koden som er i klammeparenteser. Det ’ s hva som skjer hvis betingelsen er sann I vår opprinnelige koden, den “. Deretter ” del av linjen bare vises teksten “ Bigger than Zero ”. I den nye versjonen av koden, har jeg laget en liten endring som viser verdien av $ arg1 variabel før visning av “ Bigger than Zero ” tekst. Jeg gjorde dette ved å bruke ordet Echo, etterfulgt av variabelnavnet. Hvis du noensinne har gjort DOS batch-programmering, kan du huske at Echo er en kommando brukes til å vise en tekstlinje. Nå ser nedenfor funksjonen. Du kan se at alle mine funksjonskall blir fulgt av en verdi. For eksempel passerer VarCheck 4-verdien på 4 til funksjon, hvor det sammenliknes mot null. Selv om jeg har bestått rådata til funksjonen, kan du bruke samme teknikk for å passere en variabel ’ s innholdet til en funksjon. Du kan se resultatet av mitt script i figur B. Figur B:. Dette er resultatet fra manuset mitt I denne artikkelen, jeg har forklart hvordan du kan sende verdier til en Powershell funksjon. I min neste artikkel vil jeg vise deg hvordan du kan bruke Powershell til å benytte seg av strømmen av .NET.
{
Hvis ($ X -GT 0) {"Bigger Than Zero"}
}
VarCheck
$X=0
VarCheck
$X=1
VarCheck
{
Hvis ($ arg1 -GT 0) {echo $ arg1 "er større enn null"}
}
VarCheck 0
VarCheck en
Konklusjon