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

Dateien vergleichen per BATCH mit dos-FC.EXE

Frage Entwicklung Batch & Shell

Mitglied: perry56

perry56 (Level 1) - Jetzt verbinden

21.06.2010, aktualisiert 16:43 Uhr, 11216 Aufrufe, 2 Kommentare

Guten Tag an Alle,

schön mal wieder hier zu sein. Frage vorweg an den ADMIN: Habt Ihr alte User gelöscht ? Schade wäre es!
Na egal ...

Ich möchte zwei Dateien mit FC.EXE vergleichen. Dazu habe ein BATCH erstellt. Da dieses BATCH sehr
umfangreich ist, habe ich nur einen kleinen Auszug beschrieben

Vorraussetzung ist (ich habe mich persönlich davon überzeugt): die Dateien a.txt und b.txt sind unterschiedlich

fc a.txt b.txt >nul
echo %ERRORLEVEL%
pause

Gebe ich diesen Zweizeiler in dem cmd-Fenster ein, so bekomme ich als ERRORLEVEL "1".
Das wäre richtig.

Lasse ich diese beiden Zeilen in meinem BATCH laufen, so bekomme ich als ERRORLEVEL "0".

Es sei noch folgendes erwähnt (vielleicht liegt es daran), diese drei Zeilen werden
durch einen CALL in meinem BATCH aufgerufen, also so:

starten der CMD-Datei mit schalter

...
if (%1)==(1) call top1
...
goto :eof

:top1
...
ren ...
copy ...
call vergleich
...
goto :eof

:vergleich
fc a.txt b.txt >nul
echo %ERRORLEVEL%
pause
goto :eof


Es ist zwar heute Montag, aber über's Wochenende kann ich nicht so viel vergessen haben. Oder doch ?? )

Frage was ist falsch?
Beim "googlen" ist mir aufgefallen, das hier mal ein BUG war? Der ERRORLEVEL von fc wurde nicht richtig übergeben !
Ist dieser immernoch vorhanden ? Habe ich was überlesen ?

Vielen Dank für Eure Hilfe
Mitglied: bastla
21.06.2010 um 23:01 Uhr
Hallo perry56 und willkommen im Forum!

Abfragen (und darauf wird's ja auch im nicht geposteten Teil Deines Codes hinauslaufen) mit %Errorlevel% vermeide ich grundsätzlich - daher entweder ein
if errorlevel 1 echo verschieden
oder gleich die direkte Variante
fc a.txt b.txt >nul || echo verschieden
(beides mit dem zusaätzlichen Vorteil, auch innerhalb einer "for"-Schleife zu funktionieren).

Abgesehen davon stellt sich noch die Frage, wo in Deinem Script (im aufgerufenen Unterprogramm oder im Hauptprogramm) dann was passieren soll - um einen Errorlevel an das Hauptprogramm zurückzugeben, könntest Du im Unterprogramm "exit /b" verwenden ...

Grüße
bastla
Bitte warten ..
Mitglied: perry56
22.06.2010 um 19:45 Uhr
Hallo bastla,

vielen Dank für Deine Anregungen. Habe ein paar Dinge auch nach Deinen Hinweisen umgestellt.

Woran es letztendlich gelegen hat, kann ich im einzelnen nicht sagen.

Ergebnis ist jedenfalls, nach Umstellung und Neustart des PC ( Neustart -- das scheint es in erster Linie
gewesen zu sein) funkt es einwandfrei. Ja was soll ich sagen, selbst der ERRORLEVEL ist jetzt in Ordnung.

Nein "Scherz beiseite" - ich habe den ERRORLEVEL in einer Variable zwischengespeichert und arbeite mit dieser
im Programm weiter. Es wird so sein, das der ERRORLEVEL von einer anderen Funktion manipuliert wurde.

Nochmals vielen Dank. Ansonsten kann der Fall als gelöst vermerkt werden

Grüße
perry56

PS: nette Begrüßung danke, aber warum ist mein Nickname nicht mehr vorhanden / ich war vor Monaten
schon öffters bei Euch und hatte regen Kontakt mit BIBER (Gruss an Ihn) / wo ist mein Account geblieben ?
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Batch Änderungsdatum von Dateien vergleichen und ältere löschen (10)

Frage von 129528 zum Thema Batch & Shell ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Batch & Shell
gelöst Mehrere PDF-Dateien per Batch zusammenfügen (1)

Frage von Grimmli zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...