- 2 Abschnitte
- 16 Lektionen
- Um den Kurs in deinem Profil zu hinterlegen klicke oben auf Starten
- Grundlagen & Einstieg9
- Fortgeschritten8
Funktionen und Parameter
Funktionen sind das Werkzeug, mit dem aus einzelnen Befehlen echte, wiederverwendbare Bausteine werden.
Sie machen Skripte übersichtlicher, strukturierter und leichter zu warten.
Eine Funktion kann Parameter annehmen, Werte zurückgeben und sogar eigene Hilfetexte besitzen.
Warum Funktionen?
Wenn du dieselbe Befehlsfolge mehrmals brauchst, solltest du sie nicht kopieren, sondern in eine Funktion packen.
So änderst du sie später an einer Stelle – und überall, wo sie aufgerufen wird, gilt automatisch die aktualisierte Version.
Das spart Zeit und verhindert Fehler.
function Backup-Dateien {
param(
[string]$Quelle,
[string]$Ziel
)
if (!(Test-Path $Ziel)) {
New-Item -ItemType Directory -Path $Ziel | Out-Null
}
Copy-Item -Path $Quelle\* -Destination $Ziel -Recurse -Force
Write-Host "Backup von $Quelle nach $Ziel abgeschlossen."
}
Mit einem einzigen Aufruf erledigst du dann alles:
Backup-Dateien -Quelle "C:\Logs" -Ziel "D:\Backup" Aufbau einer Funktion
Jede Funktion folgt demselben Grundmuster:
function Name-der-Funktion {
param(
# hier Parameter definieren
)
# hier steht der auszuführende Code
}
Ein einfaches Beispiel:
function Sag-Hallo {
param([string]$Name)
Write-Output "Hallo $Name!"
}
Sag-Hallo -Name "Ricky"
Parameter definieren
Parameter machen deine Funktion flexibel.
Jede Eingabe, die du später brauchst, definierst du hier.
PowerShell prüft automatisch, ob die Übergabe zu den erwarteten Typen passt.
function Verdopple-Zahl {
param([int]$Zahl)
return $Zahl * 2
}
Verdopple-Zahl -Zahl 5
Standardwerte
Parameter können Standardwerte besitzen, falls der Benutzer keinen Wert angibt.
function Begruesse {
param([string]$Name = "Unbekannter Besucher")
Write-Output "Willkommen, $Name!"
}
Begruesse
Begruesse -Name "Ricky"
Pflichtparameter und Validierung
Manchmal sollen Parameter zwingend angegeben oder geprüft werden.
Dafür nutzt man Validierungsattribute:
function Wähle-Zahl {
param(
[Parameter(Mandatory = $true)]
[ValidateRange(1,10)]
[int]$Zahl
)
Write-Output "Du hast $Zahl gewählt."
}
Wenn du die Funktion ohne Zahl aufrufst, fragt PowerShell automatisch danach.
Lokale Variablen und Rückgabewerte
Variablen, die du in einer Funktion erstellst, sind nur dort gültig.
Alles, was du mit Write-Output oder return ausgibst, wird an den Aufrufer zurückgegeben.
function Berechne-Steuer {
param([double]$Betrag)
$steuer = $Betrag * 0.19
return $steuer
}
$erg = Berechne-Steuer -Betrag 100
"Die Steuer beträgt: $erg €"
Funktionen wiederverwenden
Wenn du Funktionen in mehreren Skripten brauchst, speichere sie in einer Datei, z. B. funktionen.ps1, und lade sie in anderen Skripten nach:
. "C:\Skripte\funktionen.ps1" Der Punkt vor dem Pfad sorgt dafür, dass sie im aktuellen Kontext verfügbar wird.
Diese Technik nennt man „Dot Sourcing“.
Hilfe zu eigenen Funktionen
PowerShell kann Hilfetexte aus speziell formatierten Kommentaren auslesen.
Damit erscheinen deine eigenen Funktionen auch im Get-Help.
function Begruesse {
<#
.SYNOPSIS
Gibt eine freundliche Begrüßung aus.
.PARAMETER Name
Der Name der Person, die begrüßt werden soll.
.EXAMPLE
Begruesse -Name "Ricky"
#>
param([string]$Name)
Write-Output "Hallo $Name!"
}
Wenn du danach Get-Help Begruesse -Detailed eingibst, zeigt PowerShell automatisch diese Beschreibung an.
Best Practices
Verwende sprechende Namen: „Backup-Dateien“ ist besser als „Bkp“.
Verwende englische Verben, wenn du dich an Microsofts Namensschema halten möchtest (Get-, Set-, New-, Remove-, Test-…).
Fasse verwandte Funktionen später in Modulen zusammen, statt alles in eine Datei zu schreiben.
Gib keine reinen Anzeigen mit
Write-Hostaus, wenn das Ergebnis weiterverarbeitet werden soll – nutze stattdessenWrite-Output.
