Articles

förstå funktioner i PowerShell

istället för att kopiera och klistra in samma kod om och om igen, skapa en PowerShell-funktion.

När du först börjar skriva PowerShell-skript är du inte nödvändigtvis bekymrad över saker som modularitet, återanvändbarhet och ”bästa praxis.”Du får bara fötterna våta. Men med tiden kommer du snart att inse att du börjar upprepa dig själv i kod.

Du kommer att märka att behovet av att göra samma sak om och om igen blir större. Du kan bara kopiera och klistra in samma kod, men det är inte hållbart. Istället, varför inte skapa små” byggstenar ” i kod så att de kan återanvändas? Det är dags att börja skapa PowerShell-funktioner.

en funktion i PowerShell är en gruppering av kod som har en valfri ingång och utgång. Det är ett sätt att samla in en massa kod för att utföra en eller många olika tider genom att bara peka på den istället för att duplicera den koden upprepade gånger.

grundläggande funktioner

det finns två typer av funktioner i PowerShell. Vi har en” grundläggande ” funktion och en avancerad funktion. ”Grundläggande” funktioner är den enklaste formen av en funktion som kan skapas. De har inte någon av de fina inbyggda funktionerna som avancerade funktioner gör. Det skapas eller deklareras med hjälp av funktionsuttalandet följt av en uppsättning lockiga hängslen.

funktion Do-Something {}

ovanstående är tekniskt en funktion som sedan kan anropas genom att åberopa Do-Something men som du hittar det gör det inte så mycket. Detta beror på att vi inte har inkluderat någon kod inuti för att köra. Låt oss lägga till en enkel kod inuti för att säkerställa att den gör något. För att demonstrera använder jag kommandot Write-Host som skriver text till PowerShell-konsolen.

funktion gör-något {
Skrivvärd ’ jag gjorde något!’
}

PS> gör-något
jag gjorde något!

Nu kan du se ovan att när den åberopas; den kör koden inuti funktionen. Vad händer om vi vill skicka något till koden inuti funktionen när den körs? Vi kan skapa en eller flera parametrar inuti ett parameterblock.

funktion gör – något {
param ($String )
Skrivvärd ”jag gjorde något- $ String!”}

PS >gör-något-sträng ” sak ”
jag gjorde något-sak!

Lägg märke till att jag angav Strängparametern genom att lägga till ett streck följt av parameternamnet följt av värdet direkt efter att jag ringde Do-Something. Detta är grunderna för att överföra parametrar till funktioner.

avancerade funktioner

grundläggande funktioner fungerar, men för det mesta hittar du dig själv att skapa avancerad funktion. Avancerade funktioner är funktioner som inkluderar all funktionalitet som grundläggande funktioner men också har några inbyggda funktioner som grundläggande funktioner inte gör. Till exempel har PowerShell ett koncept av strömmar som kallas fel, varning, verbos, etc. Dessa strömmar är kritiska för att korrekt visa utdata till användarna. Grundläggande funktioner förstår inte i sig dessa strömmar.låt oss säga att vi vill visa ett felmeddelande om något händer inuti funktionen. Men vi vill också ha möjligheten att dölja detta felmeddelande av någon anledning endast vid vissa tillfällen. Med en grundläggande funktion skulle det vara kludgy att göra detta. Men med en avancerad funktion är den funktionaliteten inbyggd direkt. Avancerade funktioner har som standard redan parametrar även om du inte inkluderar dem som Verbose, ErrorAction, WarningVariable och så vidare. Dessa kan utnyttjas på olika sätt. I vårt fellexempel, låt oss säga att jag har ändrat vår funktion för att vara ”avancerad” med hjälp av nyckelordet.

funktion gör – något {

param ($String )

skrivfel-meddelande ’ fara, kommer Robinson!’
}

PS >gör-något
gör-något : fara, kommer Robinson!
på rad: 1 röding: 1
+ gör-något
+ ~~~~~~~~~~~~
+ Kategoriinfo: NotSpecified: (:),
WriteErrorException
+ FullyQualifiedErrorId:
Microsoft.PowerShell.Kommandon.WriteErrorException, Do-Something

När detta körs ser du omedelbart röd text som indikerar att den kom från felströmmen. Låt oss nu tysta detta fel.

Do-Something-ErrorAction SilentlyContinue

ErrorAction parametern är bara en inbyggd parameter på varje avancerad funktion. Det finns så mycket mer till PowerShell-funktioner som vi inte fick tid att täcka. För en fullständig uppdelning av allt som avancerade funktioner kan göra för dig, se hjälpämnet about_advanced_functions.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *