wofast 10 Geschrieben 27. Februar 2011 Melden Teilen Geschrieben 27. Februar 2011 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 Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 27. Februar 2011 Melden Teilen Geschrieben 27. Februar 2011 Was willst du mit Trap? Fehlerbehandlung? Wenn ja, schau dir mal Try / catch / finally an. Zitieren Link zu diesem Kommentar
wofast 10 Geschrieben 28. Februar 2011 Autor Melden Teilen Geschrieben 28. Februar 2011 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 Zitieren Link zu diesem Kommentar
joseph734 10 Geschrieben 28. Februar 2011 Melden Teilen Geschrieben 28. Februar 2011 vielleicht ist die Hinweise echt einfach, du brauchst nicht zu viel darüber denken. Und glaube es zu kompliziert!!! Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.