Variablen und Datentypen¶
Variablen sollten für die meisten aus der Mathematik bereits bekannt sein. In der Programmierung lässt sich eine Variable als Platzhalter für einen bestimmten Inhalt sehen.
So lässt sich sagen: Eine Variable ordnet einem Wert einen Namen zu.
Literale¶
Literale sind feste Werte, die direkt - so wie sie sind - im Code stehen.
Write-Host 4
Write-Host "Hi"
Sowohl 4
als auch "Hi"
sind hier Literale.
Variablennamen¶
Damit der Powershell Interpreter (das Programm, das den Powershell Code ausführt) Variablen auch als solche identifizieren kann, muss man sich an bestimmte Regeln halten.
Ein Variable beginnt mit einem $
Zeichen.
Der Name darf… * …nur aus alphanumerischen Zeichen (= Buchstaben und Zahlen) bestehen (Sonderzeichen und Umlaute sind jedoch nicht erlaubt) * …nicht mit einer Zahl anfangen (muss also mit einem Buchstaben anfangen)
Dabei ist zu beachten das die Groß-/Kleinschreibung von Powershell bei Variablennamen vernachlässigt wird.
Des Weiteren ist es sinnvoll sich an bestimmte Namenskonventionen zu halten, damit der Code auch von anderen Entwicklern möglichst schnell verstanden werden kann. Der wichtigste Punkt ist, dass du deinen Variablen eindeutige und selbsterklärende Namen geben solltest. Weiterhin solltest du überlegen, ob sich später vielleicht Personen aus dem internationalen Raum anschließen und dann typischerweise mit einer englischen Namensgebung und Kommentaren arbeiten.
Datentypen¶
Variablen in Powershell sind grundsätzlich dynamisch typisiert. Das bedeutet, dass eine Variable jeden beliebigen Typ annehmen und diesen wechseln kann, wenn diese nicht mit einem Typ initalisiert wurden. Das macht Powershell gerade auch für Anfänger besonders attraktiv, da es dadurch besonders einfach wird.
Beim Schreiben von Powershell Code muss lediglich die Syntax der Defintion von Literalen bekannt sein.
Beispiel¶
$zahl = 1
Write-Host $zahl
$zahl = "Test"
Write-Host $zahl
Das Beispielprogramm gibt erst die Zahl 1
aus und anschließend den Text Test
[int]$zahl = 1
Write-Host $zahl
$zahl = "Test"
Write-Host $zahl
Das Beispielprogramm gibt erst die Zahl 1
aus und wird beim zuweisen des Textes scheitern, da die Variable $zahl
typisiert ist.`
Zahlen¶
Je nach Art der Zahl gibt es zwei Datentypen für Zahlen in Powershell. Für Ganzzahlen (Zahlen ohne Dezimalstellen) sollte man int verwenden. Für Zahlen mit Dezimalen gibt es dann die Datentypen single
, double
und decimal
, welche sich bei der maximalen Größe der Zahl unterscheiden.
Dezimalzahlen (also Zahlen mit Komma) müssen statt eines Dezimalkommas jedoch einen Dezimalpunkt verwenden.
int¶
- Wertebereich: 2147483647 bis -2147483648
- Größe: 4 Bytes
single¶
- Wertebereich: 3.402823E+38 bis -3.402823E+38
- Größe: 4 Bytes
- Anzahl an Dezimalen: 7
double¶
- Wertebereich: 1.79769313486232E+308 bis -1.79769313486232E+308
- Größe: 8 Bytes
- Anzahl an Dezimalen: 15-16
decimal¶
- Wertebereich: 79228162514264337593543950335 bis -79228162514264337593543950335
- Größe: 16 Bytes
- Anzahl an Dezimalen: 28-29
Beispiele¶
Zahlen können ganz einfach wie folgt definiert werden:
[int]$meine_zahl = 42 # ganze Zahl
Write-Host $meine_zahl
[decimal]$meine_zahl_decimal = 13.37 # Dezimalzahl mit Dezimalpunkt
An diesem Beispiel lässt sich sehen, wie eine Variable als Platzhalter eingesetzt werden kann.
Strings / Zeichenketten¶
Zeichenketten, also beliebige Aneinanderreihungen von Zeichen, in der Programmierung auch Strings genannt, müssen zwischen Anführungszeichen gestellt werden.
$meine_zeichenkette = "Hallo Welt!"
Array¶
Ein Array speichert mehrere Werte, ähnlich einer 2 spaltigen Tabelle.
$array = ("Wert 1", "Wert 2", "Wert 3") # Erstellen eines Arrays
Write-Host $array[2] # Gibt "Wert 3" aus
Index | Wert |
---|---|
0 | Wert 1 |
1 | Wert 2 |
2 | Wert 3 |
Dabei ist zu beachten das die Nummerierung der Einträge bei 0 beginnt!
Man kann auch einen Wert zu einem bestehenden Array mittels der +=
Operation hinzufügen.
$array = ("Wert 1", "Wert 2", "Wert 3") # Array mit 3 Werten definieren
$array += "Wert 4" # Eintrage hinzufügen
Wenn man jetzt schnell die Zahlen 1 bis 10 als einen Array erstellen möchte gibt es ..
Operator.
$array = (1..10) # Array mit Zahlen von 1 bis 10 erstellen
Übung¶
Teil 1¶
Aufgabe dieser Übung ist das Definieren von 4 Variablen (die Namen der Variablen können frei gewählt werden, wenn nicht anders angegeben)
- Eine Variable soll mit der ganzen Zahl
-5
initialisiert werden - Variable mit dem Fließkommawert
42.1337
- Variable mit dem String
Mein Name ist Fritz
- Variable 4 soll Variable 2 zugewiesen werden und den Namen
letzte_variable
tragen
Im Anschluss sollen alle 4 Variablen in der angeführten Reihenfolge ausgegeben werden.
Lösung¶
# Variablen definieren
$variable1 = -5
$variable2 = 42.1337
$variable3 = "Mein Name ist Fritz" # auf Anführungszeichen achten!
$letzte_variable = $variable2
# Variablen ausgeben
Write-Host $variable1 $variable2 $variable3 $letzte_variable