The /b
bendera copy
memperlakukan perintah file sebagai biner (yaitu, aliran baku byte berarti), dan salinan mereka byte untuk byte bukan default (atau /a
) perilaku yang memperlakukan mereka sebagai baris teks (dengan end-of-line karakter, akhir file, dll.)
Anda dapat menggabungkan file teks dengan perilaku teks default atau saklar biner, tetapi hampir semua file biner tidak akan berfungsi. Anda tidak bisa hanya menyalin byte dari dua file biner dan mengharapkannya bekerja karena file biner biasanya memiliki header , metadata , struktur data, dll. yang menentukan format file. Jika Anda melakukan salinan biner, Anda hanya akan menyalin semua byte seperti apa yang akhirnya menempatkan struktur ini di tempat-tempat yang seharusnya tidak, jadi ketika Anda membukanya, fungsi parsing akan mengalami kesulitan dan melihat apa yang pada dasarnya data korup . Beberapa program akan mengabaikan bagian-bagian yang tidak masuk akal dan hanya menunjukkan apa yang mereka bisa (yang memungkinkan stereografi berfungsi), tetapi beberapa akan membuat kesalahan dan mengeluh bahwa file tersebut rusak. Kemampuan untuk mendeteksi korupsi tergantung pada tipe file.
Sebagai contoh, mari kita ciptakan format PDF yang disederhanakan:
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
Seperti yang Anda lihat, setiap file akan berisi tajuk tingkat file dengan beberapa informasi umum, diikuti oleh blok data untuk setiap halaman yang berisi data halaman. Jika Anda kemudian mengambil dua file, masing-masing berisi satu halaman dan menggabungkannya sebagai file biner, Anda tidak akan membuat satu file dua halaman, tetapi sebaliknya satu file korup yang dimulai dengan satu halaman, kemudian memiliki banyak sampah (file tersebut header tidak masuk akal ketika program mencoba membaca halaman dua).
Hal yang sama terjadi pada MP3 Anda. Ketika Anda menggabungkan mereka seperti itu, tag ID3 di awal dan / atau akhir file kedua dipertahankan, dan ketika pemain mencoba membaca frame berikutnya, itu mengharapkan data audio, tetapi sedang menemukan header dari file tersebut. file kedua yang tidak sesuai dengan format yang diharapkan untuk data audio, jadi tidak tahu apa yang harus dilakukan. Beberapa pemain akan memainkan header sebagai data audio (yang kemungkinan akan diputar sebagai statis / noise / muncul / dll.), Beberapa akan memotong suara untuk sampai frame yang benar berikutnya, beberapa mungkin berhenti memainkan lagu sama sekali, dan beberapa bahkan mungkin crash .
The copy
Perintah tahu apa-apa tentang file-jenis lain dari teks biasa (dan bahkan kemudian, hanya teks ASCII), sehingga hanya plain-text dapat dikombinasikan dengan benar dengan itu. File biner harus digabungkan menggunakan editor yang tahu cara mem-parsing dan menginterpretasikan konten dengan benar.
Dalam contoh Anda, dengan MP3, itu mungkin akan memberikan perilaku aneh karena bagaimana MP3 dikodekan. Misalnya, tag ID3v1 adalah 128 byte terakhir dari MP3 (yaitu artis, album, dll). Informasi ini tidak "dapat dimainkan". Ketika VLC atau pemutar media lain membuka MP3, itu akan (mungkin) memutar melalui MP3 pertama, bertindak lucu untuk informasi tersebut, dan kemudian mungkin memutar sisa file. Saya tidak punya Windows yang dimuat sekarang, jadi saya tidak bisa menguji dengan pasti.
Saya berasumsi ini sama dengan gambar dan film; tergantung bagaimana file dikodekan tergantung bagaimana file akan "digabungkan". Saya membayangkan fungsi ini berasal dari zaman DOS ketika semuanya dalam teks biasa
sumber
Dulu di masa lalu Win ME hari-hari baik saya gunakan untuk hanya menyatukan klip video. Itu tidak berfungsi sepanjang waktu tetapi itu berhasil beberapa waktu.
Ini adalah contoh dari perintah yang saya gunakan:
Jika film di mana tidak terlalu besar dan semua jenis yang sama, frame rate dll, mereka biasanya bergabung dengan sempurna. Belum mencoba yang seperti ini belakangan ini.
sumber
Mengenai MP3, kira-kira, apa yang setelah header semua bisa dibaca sebagai data. Ada game ini, Sonic 3 di Sega Genesis dan game lain yang disebut Sonic & Knuckles. Kartrid asli Sonic & Knuckles memiliki slot yang dimaksudkan untuk memasukkan gim lain, tetapi ketika menambahkan Sonic 2 dan khususnya 3, mungkin checksum akan memicu set pointer lain, gim akan berperilaku berbeda. Pada tahap awal menggunakan ROM, setiap kali kami ingin menempatkan dua kartrid berfungsi seperti pada perangkat keras, kami menggunakannya
copy /b sonick.bin+sonic3.bin sonic3k.bin
. Dengan cara ini, penggabungan mereka akan menghasilkan satu ROM tunggal besar di mana sonick akan memiliki set instruksi (pointer) untuk membuatnya menggunakan sumber daya sonic3.sumber