tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
904
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Ringelsocke Tutorials.de Gastzugang
    Vorabinfo: Betriebssystem Vista, die Batch habe ich einfach erstellt indem ich eine Textdatei erstellt habe und in .bat umbenannt habe und ich starte sie einfach per Doppelklick (bzw. später soll sie von einem C# Programm aufgerufen werden)
    Hallo, ich habe eine Batchdatei die eine Xsl-Transformation durchführt. Das geht auch ganz gut und ich kann mir mit %ERRORLEVEL% anzeigen lassen ob die Transformation erfolgreich war oder es Fehler gab. Nun möchte ich aber nicht nur die "0" (bei Erfolg) oder "1" (bei Fehler) ausgeben sondern auch noch einen benutzerfreundlichen Fehlertext.
    Dachte das wäre einfach über goto zu lösen, aber es funktioniert leider bei mir nicht, die Batchdatei geht in der ersten Zeile in der ich goto verwende zu, d.h. ich sehe auch die Fehlermeldung nicht (zum pause kommt er garnicht weiter, das Konsolenfenster geht einfach zu, zu schnell um noch was lesen zu können).
    Hier die entsprechenden Zeilen:
    --------------------------------------------------
    IF %ERRORLEVEL% 0 goto FINISH_SUCCESS
    goto FINISH_ERROR

    @ECHO.
    @ECHO.

    :FINISH_SUCCESS
    COLOR 2
    @ECHO *****************************************
    @ECHO Export finished.
    @ECHO Exittime: %date% %time%
    @ECHO *****************************************
    @ECHO.
    goto END_THIS

    :FINISH_ERROR
    COLOR 4
    @ECHO *****************************************
    @ECHO Export finished. Errors occured!
    @ECHO Exittime: %date% %time%
    @ECHO *****************************************
    @ECHO.
    goto END_THIS

    :END_THIS
    @ECHO.

    pause
    --------------------------------------

    Hat jemand eine Idee was ich falsch mache? Beim googeln findet man sehr viele verschiedene Batch-Syntax, wenn ich das @ vor dem ECHO weglasse dann printet er mir scheinbar alles aber macht nichts. Manchmal wird bei der Sprungmarke goto :Sprungmarke geschrieben, machmal so wie ich's oben hab ohne das :. Hab aber beides erfolglos probiert.
    Wäre für jeden Tipp dankbar!

    gruß & thx
    Ringelsocke
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Hi.

    Es muss entweder
    Code :
    1
    
    IF ERRORLEVEL 0 goto FINISH_SUCCESS
    oder (wenn die Befehlszeilenerweiterungen aktiviert sind):
    Code :
    1
    
    IF %ERRORLEVEL% EQU 0 goto FINISH_SUCCESS
    heißen.

    Allerdings würde die erste Bedinung immer zutreffen, da die Bedingung wahr ist, falls der letzte Befehl bzw. das letzte ausgeführte Programm einen Code größer oder gleich dem angegebenen Wert hatte. Siehe help if

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    Ringelsocke Tutorials.de Gastzugang
    Die zweite Variante geht! Danke!
    gruß
    Ringelsocke
     

  4. #4
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Zitat Zitat von Ringelsocke Beitrag anzeigen
    Die zweite Variante geht! Danke!
    Die erste Variante würde auch funktionieren, du mußt nur die größeren Fehlercodes immer zuerst prüfen:
    Code :
    1
    2
    
    IF ERRORLEVEL 1 GOTO FINISH_ERROR
    IF ERRORLEVEL 0 GOTO FINISH_SUCCESS
    Gruß

    PS: statt vor jede Zeile ein @ Zeichen zu schreiben, kannst du auch am Anfang die Ausgabe der ausgeführten Befehle ausschalten:
    Code :
    1
    
    @echo off
    Geändert von deepthroat (17.08.09 um 11:10 Uhr)
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  5. #5
    Ringelsocke Tutorials.de Gastzugang
    danke für den Tipp, aber da mein Programm bei anderen Usern läuft will ich die ausgeführten Aktionen sehen, da ich im Fehlerfall einfach einen Screenshot anfordern kann (die Ausgabe der (dynamisch per Programm erzeugten) Batch-Datei ist in meinem Programm umgeleitet auf eine Programm-"Konsole")
    gruß
    Ringelsocke
     

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 09.10.06, 17:27
  2. Zwei goto- Befehle in einer on(Release)Anweisung - geht das?
    Von Clausclaus im Forum Flash Plattform
    Antworten: 3
    Letzter Beitrag: 24.01.06, 11:00
  3. batch-datei funktioniert nicht in tiefen verzeichnissen
    Von wolb im Forum Sonstige Sprachen
    Antworten: 0
    Letzter Beitrag: 03.09.05, 16:28
  4. Batch Datei lässt sich nicht schließen
    Von Bella_Isy im Forum Sonstige Sprachen
    Antworten: 6
    Letzter Beitrag: 15.04.05, 14:44
  5. Antworten: 3
    Letzter Beitrag: 28.07.02, 12:28