Top-Themen

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

Errorlevel Problem ?

Frage Entwicklung Batch & Shell

Mitglied: malcomxcia

malcomxcia (Level 1) - Jetzt verbinden

01.07.2013 um 12:57 Uhr, 1511 Aufrufe, 7 Kommentare, 2 Danke

Tach'en erst mal ! ! !

Ich habe folgendes Problem, das mir der errorlevel immer falsch ausgegeben wird sobald ich ihn in einer If Abfrage ausgeben lasse.

Beispiel

So geht's:

01.
if defined fullbackup ( 
02.
echo ------------STARTE FULLBACKUP----------------- 
03.
 
04.
SNAPSHOT c:   g:\backup\server\%tag%_$computername_$disk.sna -L40000 >>%cd%\log\log_%tag%_backup.log 
05.
echo ##########################################  %errorlevel% 
06.
echo %errorlevel% >> %cd%\log\log_%tag%_backup.log 
07.
rem if %errorlevel% GEQ 1 goto fehlermail 
08.
)
und mit der If Abfrage gehts NICHT und ich bekomme bei der Ausgabe des errorlevels immer 0

01.
echo ------------STARTE FULLBACKUP----------------- 
02.
 
03.
SNAPSHOT c:   g:\backup\server\%tag%_$computername_$disk.sna -L40000 >>%cd%\log\log_%tag%_backup.log 
04.
echo ##########################################  %errorlevel% 
05.
echo %errorlevel% >> %cd%\log\log_%tag%_backup.log 
06.
rem if %errorlevel% GEQ 1 goto fehlermail
Wo liegt da mein Fehler ?

Gruß
Malcom
Mitglied: colinardo
01.07.2013, aktualisiert um 13:06 Uhr
Hallo Malcom,
das %errorlevel% gillt immer für den in der vorherigen Zeile ausgeführten Befehl.Dieser ändert sich z.B. nach dem
echo %errorlevel%
wieder.
Du musst die Ausgabe von %errorlevel% in einer Variablen speichern
01.
set errorcode=%errorlevel%
und dann mit %errorcode% abfragen

Grüße Uwe
Bitte warten ..
Mitglied: malcomxcia
01.07.2013 um 13:32 Uhr
Erst mal vielen Dank für deine Antwort ;)

öhm ja eben da genau passts ja schon nicht

01.
SNAPSHOT c:   g:\backup\server\%tag%_$computername_$disk.sna -L40000 >>%cd%\log\log_%tag%_backup.log 
02.
echo ##########################################  %errorlevel%
bezieht sich doch somit auf die letzte Zeile

Wie schon gemeint, passt ja die Ausgabe, nur eben nicht mit der If Abfrage. wenn ich die If weglasse gibt er mir den errorlevel richtig aus undn mit der IF immer nur 0

Gruß
Malcom
Bitte warten ..
Mitglied: colinardo
01.07.2013, aktualisiert um 13:53 Uhr
so geht das ...
01.
echo ------------STARTE FULLBACKUP----------------- 
02.
 
03.
SNAPSHOT c:   g:\backup\server\%tag%_$computername_$disk.sna -L40000 >>log\log_%tag%_backup.log 
04.
set returncode=%errorlevel% 
05.
echo ##########################################  %returncode% 
06.
echo %returncode% >>log\log_%tag%_backup.log 
07.
if %returncode% GEQ 1 goto fehlermail
Bitte warten ..
Mitglied: bastla
01.07.2013, aktualisiert um 15:11 Uhr
Hallo malcomxcia!

In Deinem Beispiel oben wird ja vor dem if noch die Zeile
echo %errorlevel% >> %cd%\log\log_%tag%_backup.log
ausgeführt - wenn dies fehlerfrei gelungen ist, wird natürlich der Errorlevel 0 sein; daher, wie von collinardo empfohlen, zuerst den Errorlevel in eine Variable (im Beispiel %returncode%) schreiben und danach diese verwenden ...
BTW: %cd% in der Pfadangabe bringt eigentlich nix (außer natürlich, es wäre im Pfad zum aktuellen Ordner zB ein Leerzeichen enthalten - dann bringt's einen Fehler ) ...

Grüße
bastla
Bitte warten ..
Mitglied: malcomxcia
01.07.2013, aktualisiert um 17:02 Uhr
@colinardo

;) keine Angst schon probiert jedoch gleiches Resultat

Also hab da ganze jetzt mal runtergespeckt ;)

So gehts NICHT

01.
echo off 
02.
set "fullbackup=True" 
03.
if defined fullbackup ( 
04.
SNAPSHOT c:   g:\backup\server\%tag%_$computername_$disk.sna -L40000 >>%cd%\log\log_%tag%_backup.log 
05.
echo ##########################################  %errorlevel% 
06.
07.
pause
Und ohne die if also OHNE if defined fullbackup ( KLAPPTS und er gibt mir 1 aus und oben bekomme ich immer 0
Den Fehler produzeire ich durch G (falscher Laufwerksbuchstabe)
01.
echo off 
02.
set "fullbackup=True" 
03.
SNAPSHOT c:   g:\backup\server\%tag%_$computername_$disk.sna -L40000 >>%cd%\log\log_%tag%_backup.log 
04.
echo ##########################################  %errorlevel% 
05.
 
06.
pause
Malcom
Bitte warten ..
Mitglied: colinardo
01.07.2013, aktualisiert um 14:48 Uhr
ah OK jetzt verstanden, aber deine zwei Code-Abschnitte im letzten Post haben keinerlei Unterschiede....

hier musst du delayed expansion benutzen:

01.
@echo off & setlocal ENABLEDELAYEDEXPANSION 
02.
set "fullbackup=True" 
03.
if defined fullbackup ( 
04.
SNAPSHOT c:   g:\backup\server\%tag%_$computername_$disk.sna -L40000 >>%cd%\log\log_%tag%_backup.log 
05.
set returncode=!errorlevel! 
06.
echo ##########################################  !returncode! 
07.
08.
pause
Variablen innerhalb von Klammerausdrücken müssen mit "Delayed Expansion" expandiert werden.
Bitte warten ..
Mitglied: malcomxcia
01.07.2013 um 19:17 Uhr
Hey super vielen Dank und hat alles geklappt ;)

Muss mir nur nochmal genauer durchlesen was das bezweckt. Wenn dann will ich's ja auch verstehen.

Gruß und Danke nochmal
Malcom
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
BatchFile mit Errorlevel
gelöst Frage von MemaAaBatch & Shell7 Kommentare

Hallo Da ich mit Batchprogrammierung nur Grundlegende Erfahrungen habe frage ich hier nach. und zwar habe ich ein Batchfile, ...

Batch & Shell
For bringt falsches Errorlevel
gelöst Frage von golsinBatch & Shell5 Kommentare

Guten Morgen, mein Ziel ist es aus den for Schleifen das Errorlevel des Pings zu bekommen, komischerweise bekomme ich ...

Batch & Shell
Win10 ändert den Errorlevel? ( Batch )
gelöst Frage von clragonBatch & Shell12 Kommentare

Hey Leute, Ich habe heute wieder mit Prozessen herumgebastelt, die sich gegenseitig überwachen. Da plötzlich, habe ich einen Fehler. ...

Windows Server
For Schleife mit Errorlevel
Frage von berlingerWindows Server5 Kommentare

Hallo Zusammen ich versuche aus einer Text-Datei die IP-Adresse auszulesen und anschliessend via PSEXEC auf dem Zielrechner einen Registry-Key ...

Neue Wissensbeiträge
Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 24 MinutenMac OS X

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser ereichbar sind. Leider fehlt ...

Datenschutz

Weitere Inforamtionen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 7 StundenDatenschutz

Im folgenden ein weiterer Bericht über die Sicherheitsprobleme von Bea. Fataler Konstruktionsfehler im besonderen elektronischen Anwaltspostfach Gruss Penny

Windows 10

Systemdienste behalten nach Win10 inplace-Upgrade nicht die ggf. modifizierte Startart bei

Tipp von DerWoWusste vor 8 StundenWindows 103 Kommentare

Stellt Euch vor, Ihr habt ein Win10 System und modifiziert dort die Startart von Systemdiensten. Zum Beispiel wollt Ihr ...

Microsoft Office

Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei

Anleitung von SarekHL vor 11 StundenMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Microsoft Office
Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei
Anleitung von SarekHLMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von fyrb38Windows 1017 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...