1. Startseite
  2. Forenübersicht
  3. Dashboard
  4. Forum
    1. Unerledigte Themen
  5. Tipps und Tricks
    1. Windows 11 Tipps
    2. Windows 10 Tipps
    3. Windows 8 Tipps
    4. Windows 7 Tipps
    5. Windows Vista Tipps
    6. Windows XP Tipps
    7. MS Office Tipps
    8. FritzBox Tipps
    9. Workshops - Anleitungen
  • Anmelden oder registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. win-tipps-tweaks.de Community
  2. Windows
  3. Windows-XP
  4. Software

Gibt fc /B einen falschen Errorlevel zurück?

  • Funkenzupfer
  • 6. März 2007 um 14:11
  • Geschlossen
  • Funkenzupfer
    Meister
    Punkte
    11.480
    Beiträge
    2.009
    • 6. März 2007 um 14:11
    • #1

    Beim Binärvergleich zweier Dateien per Batch-Script stoße ich auf ein seltsames Problem:

    Der Windowseigene CMD-Befehl fc /B gibt mir beim Vergleich zwei verschiedener Binär-Dateien gleicher Größe immer den Errorlevel 0 zurück, genau so, als seien sie identisch. Und das, obwohl in der Ausgabe von fc auf der Befehlszeile die Unterschiede aufgelistet werden.
    Beim ASCII-Vergleich von Textdateien hingegen (ohne den Schalter /B) wird bei Abweichungen korrekt Errorlevel 1 zurückgegeben.

    Ist dieses fehlerhafte Verhalten bekannt, evtl. ein bug oder mache ich was falsch? Gibt's einen Workaround?

    Code
    fc /B Dateiname1.dat Dateiname2.dat
    echo %ERRORLEVEL%

    Grüße
    Funkenzupfer.

    \"Wo kämen wir hin, wenn alle sagten, wo kämen wir hin, und niemand ginge, um einmal zu schauen, wohin man käme, wenn man ginge.\" (Kurt Marti)

  • Helloween
    Meister
    Punkte
    14.480
    Beiträge
    2.865
    • 6. März 2007 um 19:45
    • #2

    Hallo Funkenzupfer,
    ich weiss nun nicht ob´s hilft, oder ich daneben liege?
    Aber gefunden bei MS:

    Zitat

    Geben Sie die folgende Zeile an der Eingabeaufforderung von MS-DOS beispielsweise ein, und drücken Sie Eingabe dann, wenn Sie die Wks2000.msi-Datei auf dem CD-ROM in der Wks2000.msi-Datei, die Sie auf der Festplatte kopierten, vergleichen möchten FC-b CD-ROM: \msworks\wks2000.msi - Laufwerk: \wks2000.msi

    Vllt liegt es am - (Minus) statt / (Slash) ??

    Acer Aspire Quad Q9300 2,5 GHz
    HDD 750 GB
    Ram 4 GB
    Vista Home Prem. SP2 64-bit

  • chainon
    Meister
    Punkte
    9.280
    Beiträge
    1.472
    • 7. März 2007 um 00:29
    • #3

    Hallo funkenzupfer,

    du weiß ja, dass ich kein Programmierer bin;), aber für sowas
    bin ich ja immer zu haben. Im Web habe ich leider nichts
    gefunden zu deinem Fehler. Somit blieb mir ja nichts anderes
    übrig es einfach selber zu testen.

    Bei mir hat er eine komische Fehlermeldungausgeben:
    FC: Ungültige Option
    Das lag aber daran, dass ich die erste Datei ohne Anführungszeichen und die zweite mit geschrieben habe.

    Sonst lief alles korrekt:

    1. Versuch:

    Zitat

    C:\>fc /b "wlan.txt" "Kopie von wlan.txt"
    Vergleichen der Dateien wlan.txt und KOPIE VON
    00000029: 0D 4D
    0000002A: 0A 41
    0000002B: 4D 43
    0000002C: 41 2D
    0000002D: 43 46
    0000002E: 2D 69
    0000002F: 46 6C
    00000030: 69 74
    00000031: 6C 65
    00000032: 74 72
    00000033: 65 20
    00000034: 72 69
    00000035: 20 73
    00000036: 69 74
    00000037: 73 20
    00000038: 74 61
    00000039: 20 6B
    0000003A: 61 74
    0000003B: 6B 69
    0000003C: 74 76
    0000003D: 69 21
    0000003E: 76 21
    FC: wlan.txt ist länger als KOPIE VON WLAN.TXT

    Alles anzeigen

    2. Versuch (Gleiche Dateien):

    Zitat

    C:\>fc /b "wlan.txt" "Kopie von wlan.txt"
    Vergleichen der Dateien wlan.txt und KOPIE VON WLAN.TXT
    FC: Keine Unterschiede gefunden

    Also wie du siehst war bei mir alles korrekt oder habe ich was falsches aussprobiert?


    Gruß bang

    Windows 7|vista tippshttps://www.win-tipps-tweaks.de/cms/vista-tipps/| xp tipps| Downloads | Firefox tipps

    Firewall konfigurieren Firewall optimieren

  • Funkenzupfer
    Meister
    Punkte
    11.480
    Beiträge
    2.009
    • 7. März 2007 um 03:12
    • #4

    Danke, ihr beiden!

    @halloween:
    Das mit dem Minuszeichen statt einem Schrägstrich funzt nicht, muß ein Irrtum in der MS-Doku sein. Die scheinen nicht nur schlampig zu programmieren sondern auch die Beschreibungen sind nicht zuverlässig... :twisted:

    "help fc" gibt jedenfalls ausdrücklich den Schrägstrich als Befehlsschalter an. Und nur der wird akzeptiert. Das Minus ist auch mehr Unix-Style :D

    @bang
    Danke für den Test. Das hast Du ganz richtig gemacht. Die Ausgabe der Fehlerzeilen steht exakt auch bei mir so auf dem Bildschirm. Aber frag' mal bitte unmittelbar danach den Errorlevel ab (mit echo %ERRORLEVEL%). Nur bei identischen Dateien darf er 0 (Null) sein. Das stimmt bei mir unter Win2000 eben nicht.

    Grade noch per tiefergehender Internet-Suche gefunden: Das Problem ist tatsächlich schon bekannt, wenn auch scheinbar nicht von MS publiziert.

    Zitat von http://www.tutorials-ne.com/cmdprompt/Process-line/

    Thank you Matt.
    I tried again on my system. You are correct, errorlevel is set if one of
    the files does not exist but if both files exist the errorlevel returned is
    0 whether or not the files match, at least on my PC.

    Jetzt habe ich das auch mal auf WinXP getestet. Ergebnis: Da
    tritt der Fehler nicht mehr auf. Scheint wohl tatsächlich ein nichtveröffentlichter bug in
    der cmd-Version von Windows 2000 zu sein. Na Toll, das heißt, daß ich den fc-Befehl zum Dateivergleich in einer Batch-Datei nicht nutzen kann. :mad: So'n Mist! Jetzt darf ich stattdessen mit Prüfsummen herumfrickeln.

    Grüße
    Funkenzupfer.

    \"Wo kämen wir hin, wenn alle sagten, wo kämen wir hin, und niemand ginge, um einmal zu schauen, wohin man käme, wenn man ginge.\" (Kurt Marti)

  • Funkenzupfer
    Meister
    Punkte
    11.480
    Beiträge
    2.009
    • 7. März 2007 um 03:54
    • #5

    Und das hier löst das Problem (Vielleicht ganz nützlich für den einen oder anderen hier):

    Kopieren der Dateien fc.exe und ulib.dll aus einem WinXP-System nach Win2000.

    Original Win-2000 fc.exe:

    Zitat

    K:\test>fc /B Firefox_Portable_2.0.0.2_en-us.paf.exe Firefox_Portable_2.0.0.2_en-us.paf.exe.defekt.test
    Vergleichen der Dateien Firefox_Portable_2.0.0.2_en-us.paf.exe und FIREFOX_PORTABLE_2.0.0.2_EN-US.PAF.EXE.DEFEKT.TEST
    001EC0D2: D9 3E
    003020DD: 92 3E

    K:\test>echo %ERRORLEVEL%
    0

    Auf Win2000 mit der fc.exe und ulib.dll aus WinXP:

    Zitat

    K:\test>fc /B Firefox_Portable_2.0.0.2_en-us.paf.exe Firefox_Portable_2.0.0.2_en-us.paf.exe.defekt.test
    Vergleichen der Dateien Firefox_Portable_2.0.0.2_en-us.paf.exe und FIREFOX_PORTABLE_2.0.0.2_EN-US.PAF.EXE.DEFEKT.TEST
    001EC0D2: D9 3E
    003020DD: 92 3E

    K:\test>echo %ERRORLEVEL%
    1

    Das sieht doch gleich ganz anders aus... :D

    Übrigens: Dankenswerter Weise beschwert sich Windows in diesem Fall nicht über falsche Versionsnummern des Befehlsinterpreters, wie man das in älteren MS-Dos Versionen gewöhnt war.

    Grüße
    Funkenzupfer.

    \"Wo kämen wir hin, wenn alle sagten, wo kämen wir hin, und niemand ginge, um einmal zu schauen, wohin man käme, wenn man ginge.\" (Kurt Marti)

Registrierung

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen

Letzte Beiträge

  • Wie finde ich die besten Fototapeten für mein Zuhause?

    LukasSchmidt 31. März 2025 um 16:24
  • Was habt ihr euch zuletzt gekauft?

    LarsKlars 3. März 2025 um 10:08
  • Word 2010: Silbentrennung aktivieren

    Mannitwo 28. November 2024 um 16:24
  • Die Kunst des Einschenkens von Bier.

    Mannitwo 22. November 2024 um 17:45
  • "Foundation" bei Apple TV+: Zwei Folgen so teuer wie ein Kinofilm

    kinleyperson 17. September 2024 um 11:35
  1. Kontakt
  2. Impressum
  1. Datenschutzerklärung
  2. Nutzungsbedingungen
Community-Software: WoltLab Suite™ 6.0.21