Zum Inhalt wechseln


Foto

Fehlerbehandlung bei Powershell-Scripte


  • Bitte melde dich an um zu Antworten
22 Antworten in diesem Thema

#16 blub

blub

    Moderator

  • 7.605 Beiträge

 

Geschrieben 17. März 2010 - 13:30

@Pet7, bitte verwende die Zitierfunktion sparsamer und nur wenn du dich auf bestimmte Stellen beziehen willst. Wenn du immer den ganzen Beitrag zitierst, wird das gesamte Posting nur lang und unübersichtlich

Danke
blub

Ein Kluger bemerkt alles, Ein Dummer macht über alles eine Bemerkung. (Heinrich Heine)


#17 Pet7

Pet7

    Newbie

  • 17 Beiträge

 

Geschrieben 17. März 2010 - 13:34

danke für die Antwort.
Pet7

#18 Pet7

Pet7

    Newbie

  • 17 Beiträge

 

Geschrieben 17. März 2010 - 13:36

ok, bin noch Neuling, man möge es mir verzeihen.
Pet7

#19 blub

blub

    Moderator

  • 7.605 Beiträge

 

Geschrieben 17. März 2010 - 13:39

ok, bin noch Neuling, man möge es mir verzeihen.
Pet7


klar doch :) und viel Spass weiterhin hier

Ein Kluger bemerkt alles, Ein Dummer macht über alles eine Bemerkung. (Heinrich Heine)


#20 Bernd W

Bernd W

    Newbie

  • 9 Beiträge

 

Geschrieben 17. März 2010 - 14:27

Hallo Cybquest,
die Zuweisung der Fehlervariable im Cmdlet muss immer ohne Dollar-Zeichen erfolgen sonst tut das nicht!
Bsp.: -ErrorVariable err

Das der Wert (die Fehlermeldung als Array) als Rückgabewert geeignet ist bzw. funktioniert glaube ich ehrlich gesagt nicht. Hast Du das getestet?
Ich hab leider jezt keine Zeit mehr.

Gruß
Bernd

#21 Cybquest

Cybquest

    Expert Member

  • 1.882 Beiträge

 

Geschrieben 17. März 2010 - 14:49

@Bernd: Ich habs genau so getestet, wie ichs beschrieben hab (+ Deiner Batch). Also mit -ErrorVariable $err
Bei ner "gibtsnicht.txt" bekomm ich 1 als Errorcode, bei ner "gibts.txt" ne 0.

Edit: Bei mir gehts übrigens sowohl mit -ErrorVariable $err als auch mit -ErrorVariable err
My name is Frank, you can say you to me.

#22 Bernd W

Bernd W

    Newbie

  • 9 Beiträge

 

Geschrieben 18. März 2010 - 11:38

@Cybquest: Ich hab'a auch noch mal getestet. Es sit so wie ich schon geschrieben hatte. Vielleicht liegt's an der Umgebung Win XP Powershell 2.0 - wie auch immer... die eigentliche Frage war ja prinzipiell beantwortet.

Errorvariable: Es ist definitiv per Definition dass es nur funktioniert wenn sie ohne das Dollarzeichen angegeben wird.
Bsp:
# Korrekter Befehl
dir C:\gibtsnicht -ErrorVariable MeinFehler

# Variableninhalt ausgeben
$meinFehler

#Inhalt von $MeinFehler
Get-ChildItem : Der Pfad "C:\gibtsnicht" kann nicht gefunden werden, da er nicht vorhanden ist.
Bei Zeile:1 Zeichen:4
+ dir <<<<  C:\gibtsnicht -ErrorVariable MeinFehler
    + CategoryInfo          : ObjectNotFound: (C:\gibtsnicht:String) [Get-ChildItem], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand


# Variable leeren
$MeinFehler = $null
# Falscher Befehl
dir C:\gibtsnicht -ErrorVariable [COLOR="Red"][B]$[/B][/COLOR]MeinFehler

# Variableninhalt ausgeben
$meinFehler

#Inhalt von $MeinFehler
(Es wird kein Inhalt ausgegeben)

Gruß
Bernd

#23 Cybquest

Cybquest

    Expert Member

  • 1.882 Beiträge

 

Geschrieben 18. März 2010 - 12:16

Habs auch nochmal nachgelesen. Hast Recht :)
My name is Frank, you can say you to me.