Batch-Datei xcopy Errorlevel
[Edit] Auf "Gelöst" gesetzt und aus "Entwicklung" den Bereich "Batch & Shell" verschoben
Biber, Mod
[/Edit]
Hallo,
ich habe ein kleines Problem mit dem Befehl xcopy. Ich möchte gerne den Errorlevel verwenden, um im Fehlerfalle die .bat abzubrechen. Zur Kontrolle gebe ich die Errorlevel zunächst auf dem Bildschirm aus. Leider gibt das Ding mir immer 0 aus. In einem Falle gibt er mir 0,1,2,3,4 aus. Die zu kopierende Datei war im Quellverzeichnis nicht vorhanden. Sollte er in meinem Falle nicht 1 ausgeben (keine Dateien zum kopieren gefunden)?
Also irgendwie hab ich da wohl was falsch verstanden. Kann mir jemand erklären wie ich mit den Errorleveln umgehe? Er soll eben beim Errorlevel = 0 (ohne Fehler kopiert lt. Doku) weitermachen. In allen anderen Fällen, soll er die .bat verlassen.
xcopy c:\Quellverzeichnis\zukopierendeDatei.datei c:\Zielverzeichnis /C /D /E /H /R /Y /F 1>>%LOG_FILE_NAME% 2>>&1
echo.
if errorlevel 0 echo 0
if errorlevel 1 echo 1
if errorlevel 2 echo 2
if errorlevel 3 echo 3
if errorlevel 4 echo 4
if errorlevel 5 echo 5
pause
Danke.
Gruß
Tatjana
Biber, Mod
[/Edit]
Hallo,
ich habe ein kleines Problem mit dem Befehl xcopy. Ich möchte gerne den Errorlevel verwenden, um im Fehlerfalle die .bat abzubrechen. Zur Kontrolle gebe ich die Errorlevel zunächst auf dem Bildschirm aus. Leider gibt das Ding mir immer 0 aus. In einem Falle gibt er mir 0,1,2,3,4 aus. Die zu kopierende Datei war im Quellverzeichnis nicht vorhanden. Sollte er in meinem Falle nicht 1 ausgeben (keine Dateien zum kopieren gefunden)?
Also irgendwie hab ich da wohl was falsch verstanden. Kann mir jemand erklären wie ich mit den Errorleveln umgehe? Er soll eben beim Errorlevel = 0 (ohne Fehler kopiert lt. Doku) weitermachen. In allen anderen Fällen, soll er die .bat verlassen.
xcopy c:\Quellverzeichnis\zukopierendeDatei.datei c:\Zielverzeichnis /C /D /E /H /R /Y /F 1>>%LOG_FILE_NAME% 2>>&1
echo.
if errorlevel 0 echo 0
if errorlevel 1 echo 1
if errorlevel 2 echo 2
if errorlevel 3 echo 3
if errorlevel 4 echo 4
if errorlevel 5 echo 5
pause
Danke.
Gruß
Tatjana
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 35383
Url: https://administrator.de/forum/batch-datei-xcopy-errorlevel-35383.html
Ausgedruckt am: 11.05.2025 um 08:05 Uhr
4 Kommentare
Neuester Kommentar
Moin dynastie,
Du musst den Errorlevel in absteigender Reihenfolge prüfen.
Denn "if errorlevel 0" bedeutet nicht "wenn ErrorLevel gleich 0" , sondern "wenn ErrorLevel MINDESTENS 0".
Also mach es so herum:
...und von da an vereinfachen.
Hope That Helps
Biber
Du musst den Errorlevel in absteigender Reihenfolge prüfen.
Denn "if errorlevel 0" bedeutet nicht "wenn ErrorLevel gleich 0" , sondern "wenn ErrorLevel MINDESTENS 0".
Also mach es so herum:
Xcopy...bla...
if errorlevel 5 echo 5
if errorlevel 4 echo 4
if errorlevel 3 echo 3
if errorlevel 2 echo 2
if errorlevel 1 echo 1
if errorlevel 0 echo 0
...und von da an vereinfachen.
if errorlevel 5 echo 5 ...aber den gibts gar nicht bei XCopy...
if errorlevel 4 echo 4 ---richtig doller Fehler... zu wenig Hauptspeicher zum Kopieren
if errorlevel 3 echo 3
if errorlevel 2 echo 2 ---Problem vor dem Bildschirm...Syntaxfehler
if errorlevel 1 echo 1 && goto irgendeinFehler
if errorlevel 0 echo 0 alles Prima
goto Normalweiter
:irgendeinFehler
@Echo Xcopy ging in die Grütze...ich hör auf
goto :eof
:NormalWeiter
@echo ...habs geschafft, soll ich noch mal?
pause
Hope That Helps
Biber
Moin dynastie,

Wenn Du vorher prüfen willst, ob ein Verzeichnis/eine Datei existiert, dann musst Du das mit
"if exist x:\pfad"
- oder
"if exist y:\pfad\datei.xyz"
selber machen.
Aber vor dem XCOPY-Aufruf.
IF NOT EXIST %ZIELVERZEICHNIS%\%ZIELDATEI% ECHO Zieldatei noch nicht vorhanden.
XCOPY ....
...
Grüsse
Biber
wenn das Zielverzeichnis nicht existiert, gibt er mir trotzdem den Errorlevel null aus
und springt nach KOPIERENOK.
Nicht trotzdem. Sondern weil es kein Fehler ist. XCOPY kopiert ja ggf. incl. Verzeichnis-Neuanlegen.und springt nach KOPIERENOK.
Das soll er natürlich nicht tu'n.
"tu'n"? Welchen Buchstaben hast Du denn ausgelassen? Ein "h"? Wenn Du vorher prüfen willst, ob ein Verzeichnis/eine Datei existiert, dann musst Du das mit
"if exist x:\pfad"
- oder
"if exist y:\pfad\datei.xyz"
selber machen.
Aber vor dem XCOPY-Aufruf.
IF NOT EXIST %ZIELVERZEICHNIS%\%ZIELDATEI% ECHO Zieldatei noch nicht vorhanden.
XCOPY ....
...
Grüsse
Biber