Variable $NULL und “” als leere Variable in PowerShell

In PowerShell gibt es zwei verschiedene leere Variablen, die einen leeren String “” enthalten können, oder $NULL. Doch worin liegt der Unterschied zwischen einem $NULL-Value und einem leeren String? Wir klären euch auf!

$NULL in PowerShell Variablen

In PowerShell wird eine Variable mit einem Dollar-Zeichen und dem zugehörigen “Text” erstellt, beziehungsweise deklariert. Wird dieser Variable kein Wert zugewiesen, hat diese automatisch den Wert $NULL.

$NULL bedeutet in PowerShell, dass die Variable leer ist, und somit keinen Inhalt besitzt.

Variable auf $NULL prüfen

Ob eine Variable einen leeren String (“”) beinhaltet, oder sie einfach keinen Wert besitzt (NULL) lässt sich ganz einfach mit dem PowerShell Operator -eq prüfen. Als Ausgabe erhält man einen booleschen Wert:

  • TRUE = Variable ist leer
  • FALSE = Variable hat einen Inhalt
#Variable deklarieren
$TestString

#Testen ob Wert = NULL (Kein Inhalt)
$TestString -eq $null
PowerShell Variable $NULL

Das Ergebnis ist in diesem Fall TRUE, da der Variable kein Wert zugewiesen wurde und somit leer ist.

Leerer String “” in PowerShell Variablen

Um den Wert aus einer Variable zu löschen, wird in PowerShell oft einer Variable ein leerer String ("") zugewiesen. Somit enthält die Variable keinen Text und ist geleert. Der Unterschied ist allerdings zu $NULL, dass der Wert tatsächlich ein leerer String ist. Das bedeutet, dass diese Variable in Wirklichkeit NICHT LEER ist, auch wenn diese keinen Text oder Zahl beinhaltet.

Variable auf leeren String “” prüfen

Auch beim Prüfen auf einen leeren Inhalt, also auf einen leeren String, verwendet man den Vergleichsoperator -eq. Ebenfalls erhalten wir wieder eins der folgenden Ergebnisse:

  • TRUE = Variable enthält einen leeren String ""
  • FALSE = Variable ist $NULL oder einen anderen Inhalt
#Variable deklarieren
$TestString2 = ""

#Testen ob Wert = NULL (Kein Inhalt)
$TestString2 -eq $null
PowerShell Variable leer String

Hier erhalten wir als Erstes Ergebnis (Zeile 5) ein FALSE, da der TestString2 einen leeren Text oder Zahl enthält, aber nicht komplett leer ist. Als zweites Ergebnis wird TRUE ausgegeben (Zeile 6).

Beispiel und Unterschied zwischen $NULL und einem leeren Wert

In PowerShell lassen sich ganz einfach Werte ermitteln und weiter verarbeiten. Ein super Beispiel ist hier das Auslesen eines Windows Dienstes mit Get-Service. In diesem Beispiel wird ein Dienst ausgelesen, den es wirklich auf dem Windows System gibt. Falls dieser Dienst gefunden wird, ist die Variable nicht mehr leer und ist somit NICHT $NULL. Als zweites wird nach einem Dienst gesucht namens “FAKE SERVICE”, welchen es natürlich nicht gibt. Da PowerShell somit kein Ergebnis hat, bleibt die Variable leer und ist somit GLEICH $NULL.

$yourService = Get-Service -Name "Sophos Agent"
$yourService -eq $null

$yourService = Get-Service -Name "*FAKE SERVICE*"
$yourService -eq $null
Variable leer $NULL Unterschied

Das Ergebnis zeigt deutlich den Unterschied zwischen der Variable mit keinem Inhalt (Wert) und der mit gefundenen Dienst.

Johannes Huber
 

In seiner Freizeit macht Johannes nichts lieber, als für ITnator Beiträge zu schreiben. Input bekommt er hierfür von Problemen in der IT Administration von Servern, Clients und vielen weiteren IT Komponenten.

Click Here to Leave a Comment Below 0 comments