Powershell prüfen ob Variable definiert wurde
Hallo,
Wie kann ich in Powershell prüfen, ob eine Variable existiert, oder nicht.
Ich habe eine environment Datei, in der alle Variablen definiert sind.
Nun habe ich ein Update-Script, was diese ebvironmnent Datei mit allen Variablen einliest.
Dort soll an einer Stelle geprüft werden, ob die Variable "$TempVar" existiert. Unabhängig von Ihrem Wert.
Also falls die Variable "$TempVar" existiert, dann installiere Komponente xy, wenn nicht, mach nichts.
Ich habe es mit
versucht. Aber entweder bekomme ich immer die Ausgabe, dass der Wert der Variable nicht existiert, oder es wird direkt in die else-Ausgabe gesprungen, obwohl es die Variable an sich gibt, halt ohne Wert bzw nicht definiert.
Das muss doch simpel sein á la batch mit
Wie kann ich in Powershell prüfen, ob eine Variable existiert, oder nicht.
Ich habe eine environment Datei, in der alle Variablen definiert sind.
Nun habe ich ein Update-Script, was diese ebvironmnent Datei mit allen Variablen einliest.
Dort soll an einer Stelle geprüft werden, ob die Variable "$TempVar" existiert. Unabhängig von Ihrem Wert.
Also falls die Variable "$TempVar" existiert, dann installiere Komponente xy, wenn nicht, mach nichts.
Ich habe es mit
if (Test-Path variable:$TempVar)
if ($TempVar -ne $null
if (Get-Variable -Name $TempVar -ErrorAction SilentlyContinue)
Das muss doch simpel sein á la batch mit
if set %TempVar%
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 8136287241
Url: https://administrator.de/contentid/8136287241
Ausgedruckt am: 22.11.2024 um 05:11 Uhr
4 Kommentare
Neuester Kommentar
Du warst schon fast richtig, es ist aber ein kleiner aber feiner Unterschied ob du den Variablennamen mit oder ohne Dollarzeichen angibst, bei Get-Variable natürlich ohne, denn du willst ja nicht das diese zu ihrem Wert aufgelöst wird sondern der Name an sich genutzt wird 😉
https://tio.run/##K8gvTy0qzkjNyfn/X6UktbhEwVbB0MiYKzNNwz21RDcssSgzMSknVU ...
S.
if (Get-Variable -Name TempVar -ErrorAction SilentlyContinue){
"Variable existiert"
}else{
"Variable existiert nicht"
}
S.
Doch das Funktioniert einwandfrei!
https://tio.run/##K8gvTy0qzkjNyfn/X6UktbhEwVbB0MiYKzNNwz21RDcssSgzMSknVU ...
Du hast also einen Denkfehler was Sessions und deren Lebensdauer anbelangt.
Die ISE arbeitet hierbei immer in der selben Session, wenn du sie nicht schließt oder eine neue Shell aufmachst. Das kann solche Missverständnisse aufkommen lassen .
https://tio.run/##K8gvTy0qzkjNyfn/X6UktbhEwVbB0MiYKzNNwz21RDcssSgzMSknVU ...
wenn die Variable existiert, dann pass es. wenn ich sie dann aber auskommentiere, dann ende ich aber trotzdem in der "Variable existiert" Ausgabe.
Dann hast du die Shell nicht vorher geschlossen, bzw. vor dem erneuten Ausführen die Variable vorher aus der PowerShell Session mit Remove-Variable entfernt!!Du hast also einen Denkfehler was Sessions und deren Lebensdauer anbelangt.
Die ISE arbeitet hierbei immer in der selben Session, wenn du sie nicht schließt oder eine neue Shell aufmachst. Das kann solche Missverständnisse aufkommen lassen .