Das /b
Flag des copy
Befehls behandelt die Dateien als binär (dh als Rohdatenstrom bedeutungsloser Bytes) und kopiert sie Byte für Byte anstelle des Standardverhaltens (oder des /a
Verhaltens), das sie als Textzeilen (mit Zeilenende) behandelt Zeichen, Dateiende usw.)
Sie können Textdateien entweder mit dem Standardtextverhalten oder dem Binärschalter zusammenführen, aber so ziemlich jede Binärdatei funktioniert nicht. Sie können die Bytes nicht einfach aus zwei Binärdateien kopieren und erwarten, dass sie funktionieren, da Binärdateien normalerweise Header , Metadaten und Datenstrukturen habenusw., die das Format der Datei definieren. Wenn Sie eine binäre Kopie erstellen, kopieren Sie einfach alle Bytes so wie sie sind, wodurch diese Strukturen an Stellen platziert werden, an denen sie nicht sein sollten. Wenn Sie sie also öffnen, hat die Analysefunktion Probleme und erkennt, was im Wesentlichen beschädigte Daten sind . Einige Programme ignorieren die Teile, die keinen Sinn ergeben, und zeigen einfach, was sie können (wodurch Stereografie funktioniert), andere geben jedoch einen Fehler aus und beschweren sich, dass die Datei beschädigt ist. Die Fähigkeit, Beschädigungen zu erkennen, hängt vom Dateityp ab.
Lassen Sie uns als Beispiel ein vereinfachtes PDF-Format erfinden:
Byte(s) Meaning
---------------------
File header:
0-1 # of Pages
2-3 Language
4-5 Font
6-EOF Data (each page encoded separately)
Page data:
0-1 Page number
2-3 # of characters on page
4-#chars Letters contained on the page
Wie Sie sehen können, enthält jede Datei einen Header auf Dateiebene mit einigen allgemeinen Informationen, gefolgt von Datenblöcken für jede Seite, die die Seitendaten enthält. Wenn Sie dann zwei Dateien mit jeweils einer Seite als Binärdateien zusammenführen, erstellen Sie nicht eine zweiseitige Datei, sondern eine beschädigte Datei, die mit einer Seite beginnt und dann eine Menge Junk enthält (die Datei) Header macht keinen Sinn, wenn das Programm versucht, Seite zwei zu lesen).
Das gleiche passiert für Ihre MP3s. Wenn Sie sie so kombiniert haben, bleiben die ID3-Tags am Anfang und / oder Ende der zweiten Datei erhalten, und wenn der Player versucht, das nächste Bild zu lesen, erwartet er Audiodaten, findet aber den Header der zweite Datei, die nicht dem erwarteten Format für Audiodaten entspricht, daher weiß sie nicht, was zu tun ist. Einige Player spielen den Header als Audiodaten ab (die wahrscheinlich als statische Daten / Rauschen / Pops / usw. Wiedergegeben werden), andere schneiden den Ton bis zum nächsten richtigen Frame ab, andere hören möglicherweise die Wiedergabe des Songs ganz auf und andere stürzen möglicherweise sogar ab .
Der copy
Befehl kennt keine anderen Dateitypen als Nur-Text (und selbst dann nur ASCII-Text), sodass nur Nur-Text korrekt damit kombiniert werden kann. Binärdateien müssen mit einem Editor kombiniert werden, der weiß, wie der Inhalt richtig analysiert und interpretiert wird.
In Ihrem Beispiel wird es bei MP3s wahrscheinlich zu seltsamen Verhaltensweisen kommen, da MP3s codiert werden. Beispielsweise sind die ID3v1-Tags die letzten 128 Bytes einer MP3-Datei (z. B. Künstler, Album usw.). Diese Informationen sind nicht "spielbar". Wenn VLC oder ein anderer Media Player die MP3-Datei öffnet, wird sie (wahrscheinlich) die erste MP3-Datei abspielen, sich für die Informationen lustig verhalten und möglicherweise den Rest der Datei abspielen. Ich habe derzeit kein Windows geladen, daher kann ich nicht sicher testen.
Ich würde annehmen, dass dies dasselbe ist wie Bilder und Filme. Je nachdem, wie die Dateien codiert sind, hängt es davon ab, wie die Dateien "kombiniert" werden. Ich stelle mir vor, diese Funktionalität stammt aus den Tagen von DOS, als alles im Klartext war
quelle
Vor langer Zeit habe ich in den guten alten Win ME-Tagen einfach Videoclips verkettet. Es hat nicht die ganze Zeit funktioniert, aber es hat manchmal funktioniert.
Dies ist ein Beispiel für den Befehl, den ich verwendet habe:
Wenn die Filme nicht zu groß waren und alle den gleichen Typ, die gleiche Bildrate usw. hatten, wurden sie normalerweise fehlerfrei zusammengeführt. Ich habe so etwas in letzter Zeit nicht versucht.
quelle
In Bezug auf MP3 kann ungefähr alles, was nach dem Header steht, als Daten gelesen werden. Es gibt dieses Spiel, Sonic 3 in Sega Genesis und ein anderes Spiel namens Sonic & Knuckles. Die Sonic & Knuckles-Originalkassette hatte einen Steckplatz zum Einfügen anderer Spiele, aber wenn Sonic 2 und speziell 3 hinzugefügt wurden, würde die Prüfsumme wahrscheinlich einen weiteren Satz von Zeigern auslösen, und das Spiel würde sich anders verhalten. In der frühen Phase der Verwendung von ROMs verwendeten wir immer dann, wenn wir zwei Kassetten so einsetzen wollten, wie es in der Hardware der Fall war
copy /b sonick.bin+sonic3.bin sonic3k.bin
. Auf diese Weise würde ihre Zusammenführung zu einem großen einzelnen ROM führen, in dem sonick über den Befehlssatz (Zeiger) verfügt, mit dem sonic3-Ressourcen verwendet werden können.quelle