Флаг /b
команды copy
обрабатывает файлы как двоичные (т. Е. Необработанный поток бессмысленных байтов) и копирует их байт за байт вместо поведения по умолчанию (или /a
), которое обрабатывает их как строки текста (с символы конца строки, конец файла и т. д.)
Вы можете объединить текстовые файлы либо с текстовым поведением по умолчанию, либо с двоичным переключателем, но практически любой двоичный файл не будет работать. Вы не можете просто скопировать байты из двух двоичных файлов и ожидать, что они будут работать, потому что двоичные файлы обычно имеют заголовки, метаданные, структуры данных и т.д., Которые определяют формат файла. Если вы делаете бинарную копию, вы просто будете копировать все байты, как есть, что в конечном итоге приведет к тому, что эти структуры будут размещены в местах, которых не должно быть, поэтому, когда вы откроете их, у функции синтаксического анализа возникнут проблемы, и вы увидите, что по сути поврежденные данные. , Некоторые программы игнорируют части, которые не имеют смысла, и просто показывают, что они могут (что позволяет работать стереографию), но некоторые выдают ошибку и жалуются, что файл поврежден. Способность обнаруживать повреждение зависит от типа файла.
В качестве примера, давайте изобретем упрощенный формат PDF:
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
Как видите, каждый файл будет содержать заголовок уровня файла с некоторой общей информацией, за которой следуют блоки данных для каждой страницы, содержащей данные страницы. Если вы затем возьмете два файла, каждый из которых содержит одну страницу, и объедините их в двоичные файлы, вы не будете создавать один двухстраничный файл, а вместо этого один испорченный файл, который начинается с одной страницы, а затем содержит кучу мусора (файл заголовок не имеет смысла, когда программа пытается прочитать вторую страницу).
То же самое происходит с вашими MP3. Когда вы объединяете их таким образом, теги ID3 в начале и / или конце второго файла сохраняются, и когда проигрыватель пытается прочитать следующий кадр, он ожидает аудиоданные, но находит заголовок второй файл, который не соответствует ожидаемому формату для аудиоданных, поэтому он не знает, что делать. Некоторые проигрыватели будут воспроизводить заголовок в виде аудиоданных (которые, вероятно, будут воспроизводиться как статические / шумовые / попсовые / и т.д.), некоторые будут обрезать звук до следующего правильного кадра, некоторые могут вообще прекратить воспроизведение песни, а некоторые могут даже вылететь. ,
Команда copy
ничего не знает о типах файлов, кроме обычного текста (и даже тогда, только текста ASCII), поэтому только обычный текст может быть правильно скомбинирован с ним. Двоичные файлы должны быть объединены с помощью редактора, который знает, как правильно анализировать и интерпретировать содержимое.