Zum Hauptinhalt springen

Einfache Datentypen

Powershell setzt auf dem .net-Framework auf und verwendet dessen Typen. Die Methode GetType() zeigt an, dass die Variable $Text vom Typ String (=Text) ist. Die Zuweisung zum String-Typ hat Powershell dabei automatisch vorgenommen. Dass es sich um einen String handelt, hat Powershell anhand der Anführungszeichen erkannt.

Man kann einer Variablen einen festen Typ zuweisen (typisieren), indem man den Variablentyp in eckigen Klammern vor den Variablennamen schreibt: 

[Int]$Zahl = '3' # konvertiert den Text 3 automatisch in eine Zahl

Die Variable behält den Datentyp jetzt solange bei, bis Sie explizit gelöscht wird (z.B. mit Remove-Variable).

Die Konsequenz der strengen Typzuweisung ist, dass die Variable $Zahl jetzt keine anderen Daten als Ganzzahlen (Integer) mehr speichern kann. Powershell versucht bei einer Zuweisung nun automatisch, den Datentyp des zugewiesenen Wertes in einen Integer umzuwandeln. Sind die Datentypen miteinander inkompatible (also nicht ineinander umwandelbar), wirft Powershell eine Fehlermeldung.

Um der Variablen einen anderen Datentyp zuzuweisen, muss man sie nun entweder löschen oder einen neuen Datentyp angeben.

$Zahl = 'drei'
Der Wert "drei" kann nicht in den Typ "System.Int32" konvertiert werden. Fehler: "Die Eingabezeichenfolge hat das falsche Format."

[string]$Zahl = 'drei' 

# Löschen
Remove-Variable -Name Zahl

Achten Sie darauf, dass Sie bei Remove-Variable nur den Variablennamen angeben, aber nicht das $-Zeichen. Eine Stolperfalle ist Clear-Variable, da die Variable (und ihr Typ) hier erhalten bleiben, und nur der Inhalt gelöscht wird. 

[Int]$Zahl = '3'

Clear-Variable -Name Zahl

$Zahl = 'drei'

Der Wert "drei" kann nicht in den Typ "System.Int32" konvertiert werden. Fehler: "Die Eingabezeichenfolge hat das falsche Format."