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, 15252 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 ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung!

(1)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
gelöst Grosses Variablen Problem ( Batch) (30)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Problem bei einer For Schleife (2)

Frage von Juergen42 zum Thema Batch & Shell ...

Batch & Shell
gelöst Windows 7: Problem mit CP in Batch (3)

Frage von Maik87 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Backup
Clients als Server missbrauchen? (10)

Frage von 1410640014 zum Thema Backup ...