Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch-Datei xcopy Errorlevel

Frage Entwicklung Batch & Shell

Mitglied: dynastie

dynastie (Level 1) - Jetzt verbinden

04.07.2006, aktualisiert 05.07.2006, 25743 Aufrufe, 4 Kommentare

[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
Mitglied: Biber
04.07.2006 um 17:07 Uhr
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:
01.
Xcopy...bla... 
02.
if errorlevel 5 echo 5 
03.
if errorlevel 4 echo 4 
04.
if errorlevel 3 echo 3 
05.
if errorlevel 2 echo 2 
06.
if errorlevel 1 echo 1 
07.
if errorlevel 0 echo 0
...und von da an vereinfachen.
01.
if errorlevel 5 echo 5 ...aber den gibts gar nicht bei XCopy... 
02.
if errorlevel 4 echo 4 ---richtig doller Fehler... zu wenig Hauptspeicher zum Kopieren 
03.
if errorlevel 3 echo 3  
04.
if errorlevel 2 echo 2 ---Problem vor dem Bildschirm...Syntaxfehler 
05.
if errorlevel 1 echo 1  && goto irgendeinFehler 
06.
if errorlevel 0 echo 0 alles Prima 
07.
goto Normalweiter 
08.
 
09.
:irgendeinFehler 
10.
@Echo Xcopy ging in die Grütze...ich hör auf 
11.
goto :eof 
12.
 
13.
:NormalWeiter 
14.
@echo ...habs geschafft, soll ich noch mal? 
15.
pause
Hope That Helps
Biber
Bitte warten ..
Mitglied: dynastie
05.07.2006 um 11:55 Uhr
Hallo,

danke für die Antwort. Das trifft's mein Problem nicht so ganz. Mittlerweile bin ich bei diesem Code angekommen:


echo Bitte warten ...
xcopy C:\Quellverzeichnis\Quelldatei.mdb c:\Zielverzeichnis /C /D /E /H /R /Y /F /I 1>>%LOG_FILE_NAME% 2>>&1
echo.
echo %errorlevel%
if %errorlevel%==0 goto KOPIERENOK
if not %errorlevel%==0 goto KOPIERENFEHLER
pause

:KOPIERENFEHLER
echo Beim Kopieren der Datei Quelldatei.mdb ist ein Fehler aufgetreten.
pause
exit

Das funktioniert soweit. Aber nun habe ich das Problem, dass wenn das Zielverzeichnis nicht existiert, gibt er mir trotzdem den Errorlevel null aus und springt nach KOPIERENOK. Das soll er natürlich nicht tu'n.

Das Problem habe ich wenn die Quelldatei.mdb zwar existiert, aber das Zielverzeichnis nicht.

Kennt jemand ne Lösung?

Danke.

Gruß

Tatjana
Bitte warten ..
Mitglied: Biber
05.07.2006 um 12:41 Uhr
Moin dynastie,
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.
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
Bitte warten ..
Mitglied: dynastie
05.07.2006 um 14:10 Uhr
Hallo,
ok ich seh's ja ein

Hab's jetzt so gelöst:

echo Bitte warten ...
IF NOT EXIST %ZIELVERZEICHNIS% mkdir %ZIELVERZEICHNIS%
xcopy %QUELLVERZEICHNIS%\%QUELLDATEI% %ZIELVERZEICHNIS% /C /D /E /H /R /Y /F /I 1>>%LOG_FILE_NAME% 2>>&1
echo.
if %errorlevel%==0 goto KOPIERENOK
if not %errorlevel%==0 goto KOPIERENFEHLER
pause

:KOPIERENFEHLER
echo Beim Kopieren der Datei dbinfo.mdb ist ein Fehler aufgetreten.
pause
exit

Dachte wieso das Verzeihcnis nicht gleich anlegen wenn man's eh unbedingt braucht und es fehlt. Jetzt tut's so wie ich es mir vorstelle.

Gruß

Tatjana
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Win10 ändert den Errorlevel? ( Batch ) (12)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst Xcopy-script kopiert nur 1 datei? (2)

Frage von f0rml0s zum Thema Batch & Shell ...

Batch & Shell
gelöst Abfrage ERRORLEVEL springt aus der FOR Schleife (8)

Frage von Galindiesel zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Datei zum Kopieren aktueller Dateien erstellen (5)

Frage von daniel011 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Viren und Trojaner

FinFisher: Internetprovider schieben Spitzelopfern Malware unter

(1)

Information von kaiand1 zum Thema Viren und Trojaner ...

Humor (lol)

Wo ist der Fehler auf dem Bild?

(17)

Information von the-buccaneer zum Thema Humor (lol) ...

Windows Update

Offenbar erneutes MS-Update mit Fehlerschleife (2012 R2)

Information von VGem-e zum Thema Windows Update ...

Heiß diskutierte Inhalte
Lizenzierung
Programm soll in verschiedenen Versionen lizenziert sein (20)

Frage von Yanmai zum Thema Lizenzierung ...

Humor (lol)
Wo ist der Fehler auf dem Bild? (17)

Information von the-buccaneer zum Thema Humor (lol) ...

Microsoft Office
Access Hilfe benötigt (13)

Frage von DieAzubinne zum Thema Microsoft Office ...