该命令的/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文本)之外,该命令对文件类型一无所知,因此只有纯文本可以正确组合。必须使用知道如何正确解析和解释内容的编辑器来组合二进制文件。