Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Problem mit IF und ERRORLEVEL in einem Batch

Frage Entwicklung Batch & Shell

Mitglied: corpse2001

corpse2001 (Level 1) - Jetzt verbinden

09.07.2006, aktualisiert 13.07.2006, 15272 Aufrufe, 9 Kommentare

Hallo,

ich habe da ein Problem mit einem Batch.
Es sollen 2 Dateien verglichen werden was auch soweit funktioniert.
Sind die Dteien gleich soll ein bestimmtes Programm gestartet werden.
Allerdings habe ich nun das Problem, dass das Programm in jedem Fall gestartet wird auch wenn die Dateien Verschieden sind.

Bis jetzt sie mein Batch so aus:

@echo Ueberpruefung gestartet.
cd\
d:
cd d:\Ordner1
dir /s >d:\inhalt\inhalt2.txt
comp d:\inhalt\inhalt1.txt d:\inhalt\inhalt2.txt n
if errorlevel 0 goto neustart

:neustart
start Programm
exit
Die Datei d:\inhalt\inhalt1.txt ist vorhanden.
Mitglied: miniversum
09.07.2006 um 10:18 Uhr
Versuchs andersrum. Schau ob der Errorlevel 1 ist und wenn nicht dann starte das Programm.
Mit der Abfrage "if erorlevel 1" kontrollierst du ob der Errorlevel mindestens 1 ist.
Daher mein Vorschlag für die letzten Zeilen:

if errorlevel 1 goto neustart
start Programm
:neustart
exit

miniversum
Bitte warten ..
Mitglied: corpse2001
09.07.2006 um 15:54 Uhr
Es funktioniert leider nich, es passiert genau das gleiche wenn ich die "1" nehme.
Bitte warten ..
Mitglied: miniversum
09.07.2006 um 19:59 Uhr
Sollte aber gehen. Ist ja das selbe Prinzip wie hier auch:
http://www.administrator.de/Batch-Datei_xcopy_Errorlevel.html

miniversum
Bitte warten ..
Mitglied: Biber
10.07.2006 um 08:38 Uhr
Moin corpse2001,

der Bug ist woanders.
Das "goto neustart" klappt schon.
Aber eine Zeile vorher sollte diese Zeile rein

...
IF Errorlevel 1 goto :eof
:: IF Errorlevel 0 goto Neustart --ist jetzt überflüssig
:: :neustart (Label neustart ist auch überflüssig
Start programm...


Wenn ich es richtig verstanden habe, dass ein Neustart ausgeführt werden soll, wenn KEIN Unterschied vorliegt.

Gruß
Biber
Bitte warten ..
Mitglied: corpse2001
10.07.2006 um 15:31 Uhr
ich werde das jetzt mal testen
Bitte warten ..
Mitglied: Biber
10.07.2006 um 19:29 Uhr
ich werde das jetzt mal testen

...Stunden später....

Na, corpse2001, so sehr verifizieren brauchst Du nun auch nicht.
Wenn der Test beim ersten Mal okay war, brauchst Du nicht die ganze Nacht durch wiederholen... wenn es nicht geklappt hat, bringen 10000 Wiederholungen nach meinen Erfahrungen auch nichts mehr....
Bitte warten ..
Mitglied: corpse2001
10.07.2006 um 23:04 Uhr
wurde von etwas anderm aufgehalten.
aber das funktioniert leider auch nicht.
Kann es sein das die Nummer vom ERRORLEVEL falsch ist?
Ist es möglich die irgentwie ausgeben zu lassen?
Bitte warten ..
Mitglied: Biber
11.07.2006 um 09:56 Uhr
...Ausgeben kannst Du den Errorlevel jederzeit so:

...
echo Errorlevel ist %ErrorLevel%
:: -->hier ggf noch ein "pause"-Befehl
...
Bitte warten ..
Mitglied: corpse2001
13.07.2006 um 10:04 Uhr
So ich habde das Problem!

Der Fehler lag darin, das das "n" hinter dem comp-Befehl einen falschen Errorlevel verursacht hat.
Dieses wurde nun so gelöst:

....
echo n | comp *.* *.*
....
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 Batch script: Problem beim Kopieren und bearbeiten, dynamischen Pfad ermitteln (31)

Frage von Hedgehogi zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateinamen mit Batch-Datei ändern - Problem (9)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Windows Systemdateien
gelöst NTFS und die Defragmentierung (29)

Frage von WinLiCLI zum Thema Windows Systemdateien ...