Batch Errorlevel

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Unsere Datenschutzerklärung wurde aktualisiert. Mit der Nutzung unseres Forums akzeptierst Du unsere Datenschutzerklärung. Du bestätigst zudem, dass Du mindestens 16 Jahre alt bist.

    • Batch Errorlevel

      Hallo.
      Ich hab ein Problem damit, das eine Variable nicht in einem Text geschrieben wenn, falls der Errorlevel >=1 ist.
      Folgende Zeilen dazu:

      Setlocal EnableDelayedExpansion
      CD /D "Z:\Backups 2015"
      FOR /F "tokens=* delims= " %%A in ('dir /b') do (
      "C:\Program Files\7-Zip\7z.exe" t "%%A"
      if errorlevel 1 echo %%A >> "H:\Test7z.txt"
      )

      Die Zeilen sollen die Archive *.7z in dem Ordner "Backups 2015" testen, und bei einem Fehler den betreffenden Dateinamen in "H:\Test7z.txt" eintragen. Dieses mit >>, weil es natürlich angehängt werden muss, um eben alle fehlerhaften Dateien zu lesen.

      Was geht nicht:
      Scheinbar wird "if errorlevel.........." ignoriert. Ausgabe ist dann auch:
      if errorlevel 1 echo backupdatei 1.7z 1>>"H:\Test7z.txt".

      wobei mich das
      1>>"H:\..........." irritiert

      Danke!



      EDIT:
      Ich bin da etwas verwirrt:
      If Errorlevel 1
      kümmert sich nur um die Variable, also es werden beispielsweise "Januar Komplett!" als "Januar Komplett" ausgelesen, das dann einen Fehler ausgibt, das diese Datei nicht vorhanden ist.

      If %Errorlevel% EQU 1
      ignoriert komplett die Zeile ab "if....." (siehe oben)
      Das heisst, ausgeführt wird augenscheinlich nur:
      FOR /F "tokens=* delims= " %%A in ('dir /b') do (
      "C:\Program Files\7-Zip\7z.exe" t "%%A"

      das "if %errorlevel%....." ist komplett weg.
      Free soul!
      Wenn Meinungen kritisiert werden, ist es dann nicht wahr, das man unfrei ist?
      codedeaf.net
      facebook.com/codedeaf

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Deacon ()

    • Setlocal DisableDelayedExpansion

      scheint das Problem des "!" zu lösen.
      Trotzdem ist in der For - Schleife kein "aktueller" Errorlevel.
      Das heisst, egal, ob 7zip einen Fehler in der Konsole ausgibt, der Errorlevel ist immer 0


      EDIT
      Damit das Problem einigermassen verständlich ist.
      Es soll getestet werden, ob sich unter den 7zips nicht doch eine defekte Datei befindet, die dann getrost gekübelt werden kann.
      Free soul!
      Wenn Meinungen kritisiert werden, ist es dann nicht wahr, das man unfrei ist?
      codedeaf.net
      facebook.com/codedeaf

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Deacon ()