Auf diesem Zettel lernst du die absoluten PowerShell-Grundlagen: Befehle nach dem Verb-Nomen-Muster, Variablen, Anführungszeichen, Datentypen und Arrays. Zum Schluss probierst du alles selbst in der Konsole aus.
Verb-Nomen: Get-Date liest, New-Item erstellt, Remove-Item löscht, Write-Host gibt aus.$: $name = "Max" — du musst keinen Typ angeben, PowerShell erkennt ihn selbst."Hallo $name" wird zu Hallo Max. Einfache nicht: 'Hallo $name' bleibt wörtlich Hallo $name."Hello", Int 42, Float 3.14, Bool $true/$false, Array @(1,2,3) und $null (nichts).$scores = @(95, 87, 76) liefert $scores[0] die 95 — nicht die 87!Get-Help <Cmdlet> zeigt die Hilfe an, mit -Examples bekommst du fertige Beispiel-Aufrufe.Verb-Nomen. Welches Verb liest nur Informationen aus, ohne irgendetwas zu verändern?Get- liest immer nur — es ist deshalb das sicherste Verb zum Ausprobieren, du kannst damit nichts kaputt machen. Set- ändert etwas, New- erstellt etwas Neues und Remove- löscht. Wenn du das Verb kennst, weißt du schon, was ein Befehl grob tut.
Write-.) "Hello, World!"Write-Host schreibt Text direkt auf den Bildschirm — der klassische erste Befehl. Auch Write-Output (Aliase: echo, write) würde hier den Text anzeigen; der Unterschied zwischen beiden wird später wichtig.
$name = "Anna" Write-Host "Hallo $name!"
In doppelten Anführungszeichen ersetzt PowerShell $name durch den gespeicherten Wert Anna — das nennt man Interpolation. Das ! gehört nicht mehr zum Variablennamen und wird ganz normal mit ausgegeben.
$city = "Wien" Write-Host 'Ich wohne in $city'
Das ist die wichtigste Falle der Lektion: EINFACHE Anführungszeichen interpolieren NICHT. $city wird wörtlich ausgegeben, nicht durch Wien ersetzt. Willst du den Wert sehen, brauchst du doppelte Anführungszeichen: "Ich wohne in $city".
Aufpassen bei "42": Sobald Anführungszeichen drumherum stehen, ist es ein String (Text) — auch wenn eine Zahl drinsteht! Ohne Anführungszeichen ist 42 ein Integer, 3.14 eine Gleitkommazahl, und $true/$false sind die beiden booleschen Werte.
76 ausgegeben wird?$scores = @(95, 87, 76, 91) Write-Host $scores[]
Arrays starten bei Index 0: $scores[0] ist 95, $scores[1] ist 87 — also liefert $scores[2] die 76. Dass das dritte Element den Index 2 hat, ist einer der häufigsten Anfängerfehler überhaupt. (Kleiner Bonus: Auch -2 würde funktionieren — negative Indizes zählen vom Ende des Arrays.)
Doppelte Anführungszeichen interpolieren, einfache nicht — genau darum sind die ersten beiden Aussagen richtig und die dritte falsch. $scores[1] ist das ZWEITE Element (Index ab 0!), und Variablen brauchst du in PowerShell nicht zu deklarieren: $x = 5 reicht, der Typ wird automatisch erkannt.
$a = 5 $b = 3 Write-Host "$a + $b"
Interpolation ersetzt nur die Variablen durch ihre Werte — gerechnet wird im String nicht! $a wird zu 5, $b zu 3, das + bleibt einfach Text. Willst du das Ergebnis 8, musst du außerhalb des Strings rechnen, z.B. Write-Host ($a + $b).
$myFolder mit dem Wert "C:\Windows" an.Write-Host und Interpolation den Satz Mein Ordner ist C:\Windows aus — der Pfad muss dabei aus der Variablen kommen!Get-ChildItem auf.Get-Help Get-Date -Examples.$myFolder = "C:\Windows" Write-Host "Mein Ordner ist $myFolder" Get-ChildItem $myFolder Get-Help Get-Date -Examples
Die Variable speicherst du einfach mit = — kein Typ nötig. In den doppelten Anführungszeichen wird $myFolder automatisch durch den Pfad ersetzt. Get-ChildItem (Aliase: gci, dir, ls) listet den Ordnerinhalt, und Get-Help ... -Examples zeigt dir fertige Beispiel-Aufrufe — dein wichtigstes Nachschlage-Werkzeug.