Hallo Leute,
bin neu hier und benötige Eure Hilfe:
In einem PS2-Script, das ich aus einer bat-Datei erstellen möchte, stehe ich vor folgendem Problem:
Einer zuvor als „local“ deklarierten Variablen wird innerhalb des Funktionskörpers einer trap-Anweisung auf gleicher Ebene ein Wert zugewiesen. Dieser Wert ist jedoch außerhalb der trap-Funktion nicht erkennbar. Dieses Verhalten widerspricht meiner Meinung nach den Gültigkeitsregeln. Was kann ich tun, um den Wert dieser Variablen dennoch im Script ausserhalb von trap weiterverarbeiten zu können?
Beispiel:
$local:a=“A“ (eigentlich ist „local“ nicht erforderlich, weil alles auf der gleichen Ebene, „global“ nutzt übrigens auch nichts)
…
Irgendwo im Script steht “throw” (zum testen)
…
trap{
$a=”X”
continue
}
trap wird ausgeführt und $a erhält den Wert "X" (schrittweise verfolgbar in ISE), aber nach trap:
$a
“A”
Innerhalb der trap-Funktion hat $a den Wert „X“, ausserhalb den Wert „A“. Weiß jemand, warum und was ich tun kann? Arbeitet PowerShell an dieser Stelle eventuell fehlerhaft?
Mit freundlichen Grüßen
wofast