Jump to content

Powershell trap


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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

Link zu diesem Kommentar

Ja, klar, Fehlerbehandlung, was sonst? Aber im Prinzip geht es darum, dass Powershell zumindest an dieser Stelle nicht sauber funktioniert. Jedenfalls habe ich keinerlei Hinweise gefunden, dass die Gültigkeitsregeln für Variablen in Verbindung mit Trap ausser Kraft gesetzt sind. Oder habe ich was übersehen?

Danke für den Hinweis auf try, catch, finally, schaue ich mir mal genauer an.

mfg

wofast

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...