Zum Inhalt springen

Datentypen und Formatierung

Core
Lernziele
  • Strings, Zahlen und Booleans unterscheiden
  • Typen erzwingen und Ausgaben formatieren

In diesem Dokument lernst du, wie du in PowerShell mit einfachen Datentypen arbeitest, Variablen deklarierst und deren Ausgabe formatierst. PowerShell ist dynamisch typisiert – Variablen nehmen automatisch den Typ des zugewiesenen Werts an, was dir eine flexible und unkomplizierte Programmierung ermöglicht. Du kannst jedoch den Datentyp auch explizit erzwingen, um unerwartete Ergebnisse zu vermeiden.

Strings sind Textwerte, die in Anführungszeichen angegeben werden. Wird der +-Operator auf Strings angewendet, so erfolgt eine Verkettung.

Terminal-Fenster
# Standard-String-Verkettung:
$resultString = "5" + "5" # ergibt "55"
Write-Output "String: '5' + '5' = $resultString"
# Explizit als String erzwingt:
[string]$str1 = "5"
[string]$str2 = "5"
$resultStringEnforced = $str1 + $str2 # ergibt "55"
Write-Output "Erzwungene String-Konkatenation: $resultStringEnforced"

Zahlen können als Ganzzahlen (Integer) oder Fließkommazahlen (Double) dargestellt werden. Bei numerischen Operationen wird dann tatsächlich gerechnet.

Terminal-Fenster
# Standard-Zahlenaddition:
$resultNumber = 5 + 5 # ergibt 10
Write-Output "Zahl: 5 + 5 = $resultNumber"
# Explizite Typ-Erzwingung als Integer:
[int]$num1 = 5
[int]$num2 = 5
$resultNumberEnforced = $num1 + $num2 # ergibt 10
Write-Output "Erzwungene Zahlenaddition: $resultNumberEnforced"

Hinweis:
Je nach Datentyp kann derselbe Ausdruck unterschiedlich interpretiert werden – als String-Verkettung oder als numerische Addition.

Booleans speichern Wahrheitswerte – entweder $true oder $false.
Du kannst den Typ auch hier erzwingen, um sicherzustellen, dass du mit logischen Werten arbeitest.

Terminal-Fenster
[bool]$isActive = $true
Write-Output "Boolean: Ist aktiv? $isActive"

Arrays sind geordnete Sammlungen von Werten. Zur Erzwingung, dass ein Array nur Werte eines bestimmten Typs enthält, kannst du den Typ des Arrays festlegen.

Terminal-Fenster
# Ein Array von Strings:
[string[]]$farben = @("Rot", "Grün", "Blau")
Write-Output "Farben: $($farben -join ', ')"

Hashtables speichern Schlüssel-Wert-Paare und eignen sich hervorragend zur strukturierten Datenspeicherung. Hier erzwingst du nicht direkt den Typ der Hashtable, aber du kannst sicherstellen, dass du in den Werten den gewünschten Datentyp nutzt.

Terminal-Fenster
$person = @{
Name = "Max"
Alter = 30
Aktiv = $true
}
Write-Output "Person: $($person.Name) ist $($person.Alter) Jahre alt, Aktiv: $($person.Aktiv)"

1.6 Den Typ prüfen und die Reihenfolge der Operanden

Abschnitt betitelt „1.6 Den Typ prüfen und die Reihenfolge der Operanden“

Mit .GetType() fragst du ein Objekt nach seinem Typ:

Terminal-Fenster
(5).GetType().Name # Int32
("5").GetType().Name # String

Bei + entscheidet der Typ des linken Operanden:

Terminal-Fenster
"5" + 5 # 55 (Text + Zahl: verkettet)
5 + "5" # 10 (Zahl + Text: der Text wird zur Zahl)

Variablen werden in PowerShell mit dem Dollarzeichen ($) deklariert. Dank dynamischer Typisierung ist es meist nicht nötig, den Typ anzugeben – jedoch kannst du den Typ erzwingen, um die korrekte Verarbeitung sicherzustellen.

Terminal-Fenster
# Ohne explizite Typdeklaration:
$name = "Max"
$alter = 30
$isActive = $true
Write-Output "Name: $name, Alter: $alter, Aktiv: $isActive"
# Mit expliziter Typdeklaration:
[string]$nameEnforced = "Max"
[int]$alterEnforced = 30
[bool]$activeEnforced = $true
Write-Output "Erzwungene Variablen - Name: $nameEnforced, Alter: $alterEnforced, Aktiv: $activeEnforced"

Je nach Datentyp können Operationen unterschiedlich interpretiert werden:

Terminal-Fenster
# Zahlenaddition:
[int]$a = 5
[int]$b = 5
$resultZahl = $a + $b # ergibt 10
Write-Output "Zahlenaddition: 5 + 5 = $resultZahl"
# String-Konkatenation:
[string]$aStr = "5"
[string]$bStr = "5"
$resultString = $aStr + $bStr # ergibt "55"
Write-Output "String-Konkatenation: '5' + '5' = $resultString"

PowerShell bietet verschiedene Techniken, um Ausgaben ansprechend zu formatieren.

Variablen können direkt in Strings eingebettet werden:

Terminal-Fenster
$name = "Max"
Write-Output "Hallo, $name!"

Mit dem Format-Operator kannst du Platzhalter in einem String durch Variablen ersetzen:

Terminal-Fenster
$formatString = "Name: {0}, Alter: {1}"
$name = "Max"
$alter = 30
Write-Output ($formatString -f $name, $alter)

Nutze die ToString()-Methode, um Zahlen mit einem bestimmten Format darzustellen:

Terminal-Fenster
$zahl = 3.14159
$formatted = $zahl.ToString("F2") # Rundet auf 2 Dezimalstellen
Write-Output "Formatierte Zahl: $formatted"
  • Einfache Datentypen:
    PowerShell unterstützt Strings, Zahlen, Booleans, Arrays und Hashtables. Diese bilden die Basis für die Datenverarbeitung in Skripten.

  • Typ-Erzwingung:
    Du kannst den Datentyp einer Variablen explizit erzwingen, um sicherzustellen, dass Operationen wie Addition numerisch durchgeführt oder Strings nicht ungewollt verkettet werden.

  • Variablen:
    Variablen werden mit dem $-Zeichen deklariert. Die dynamische Typisierung erleichtert die Entwicklung, kann aber durch explizite Deklaration präzisiert werden.

  • Formatierung:
    Nutze String-Interpolation, den Format-Operator (-f) und Methoden wie ToString(), um Ausgaben ansprechend zu gestalten.

Diese Grundlagen bilden das Fundament für fortgeschrittene PowerShell-Skripte und Automatisierungsaufgaben. Eine präzise Handhabung von Datentypen, Variablen und Formatierungstechniken erleichtert nicht nur die Skriptentwicklung, sondern auch deren Wartung und Erweiterung.