/b
Flag z copy
smakołyki dowodzenia pliki jako binarne (tj surowego strumienia bezsensownych bajtów), a kopie ich bajt do bajta zamiast domyślnego (lub /a
) zachowań, które traktuje je jako wiersze tekstu (z end-of-line znaki, koniec plików itp.)
Możesz łączyć pliki tekstowe z domyślnym zachowaniem tekstu lub przełącznikiem binarnym, ale prawie żaden plik binarny nie będzie działał. Nie można po prostu skopiować bajtów z dwóch plików binarnych i oczekiwać, że będą działać, ponieważ pliki binarne zwykle mają nagłówki , metadane , struktury danychitp., które określają format pliku. Jeśli wykonasz kopię binarną, po prostu skopiujesz wszystkie bajty bez zmian, co ostatecznie spowoduje umieszczenie tych struktur w miejscach, w których nie powinny być, więc po ich otwarciu funkcja parsowania będzie miała problemy i zobaczy, co to są zasadniczo uszkodzone dane . Niektóre programy zignorują części, które nie mają sensu, i po prostu pokażą, co potrafią (co pozwala na działanie stereografii), ale niektóre zgłoszą błąd i będą skarżyć się, że plik jest uszkodzony. Zdolność do wykrywania uszkodzeń zależy od typu pliku.
Jako przykład wymyślmy uproszczony format 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
Jak widać, każdy plik będzie zawierał nagłówek na poziomie pliku z pewnymi ogólnymi informacjami, a następnie bloki danych dla każdej strony zawierającej dane strony. Jeśli następnie weźmiesz dwa pliki, każdy zawierający jedną stronę i scalisz je jako pliki binarne, nie będziesz tworzyć jednego pliku dwustronicowego, ale zamiast tego jeden uszkodzony plik, który zaczyna się od jednej strony, a następnie zawiera kilka śmieci (plik nagłówek nie ma sensu, gdy program próbuje odczytać drugą stronę).
To samo dzieje się z plikami MP3. Po połączeniu ich w ten sposób tagi ID3 na początku i / lub końcu drugiego pliku zostają zachowane, a gdy odtwarzacz próbuje odczytać następną klatkę, oczekuje danych audio, ale znajduje nagłówek drugi plik, który nie pasuje do oczekiwanego formatu danych audio, więc nie wie, co robić. Niektóre odtwarzacze będą odtwarzać nagłówek jako dane audio (które prawdopodobnie będą odtwarzane jako static / noise / pops / etc.), Niektóre wycinają dźwięk do następnej poprawnej klatki, niektóre mogą całkowicie przestać odtwarzać utwór, a niektóre mogą nawet ulec awarii .
copy
Komenda nic nie wie o typach plików innych niż zwykły tekst (a nawet wtedy, tylko tekst ASCII), więc tylko zwykły tekst mogą być łączone ze sobą prawidłowo. Pliki binarne należy łączyć za pomocą edytora, który wie, jak poprawnie parsować i interpretować zawartość.
W twoim przykładzie, w przypadku plików MP3, prawdopodobnie zachowuje się dziwnie z powodu sposobu kodowania plików MP3. Na przykład tagi ID3v1 to ostatnie 128 bajtów pliku MP3 (tj. Wykonawca, album itp.). Tych informacji nie można „odtworzyć”. Gdy VLC lub inny odtwarzacz multimedialny otworzy plik MP3, odtworzy (prawdopodobnie) pierwszy plik MP3, będzie działał zabawnie dla informacji, a następnie może odtworzy resztę pliku. Nie mam teraz załadowanego systemu Windows, więc nie mogę na pewno przetestować.
Zakładam, że jest to to samo, co obrazy i filmy; w zależności od sposobu kodowania plików zależy od tego, jak pliki się „połączą”. Wyobrażam sobie, że ta funkcjonalność pochodzi z czasów DOS, kiedy wszystko było zwykłym tekstem
źródło
Dawno, dawno temu, w starych dobrych czasach Win ME, po prostu łączyłem klipy wideo. Nie działało cały czas, ale działało przez pewien czas.
To jest przykład polecenia, którego użyłem:
Jeśli filmy nie były zbyt duże i miały ten sam typ, liczbę klatek itp., Zazwyczaj łączyły się bezbłędnie. Nie próbowałem ostatnio czegoś takiego.
źródło
Jeśli chodzi o MP3, z grubsza to, co jest po nagłówku, można odczytać jako dane. Jest ta gra, Sonic 3 w Sega Genesis i kolejna gra o nazwie Sonic & Knuckles. Oryginalna kaseta Sonic & Knuckles miała gniazdo przeznaczone do wstawiania innych gier, ale po dodaniu Sonic 2, a zwłaszcza 3, prawdopodobnie suma kontrolna uruchomiłaby inny zestaw wskaźników, gra zachowywałaby się inaczej. Na wczesnym etapie korzystania z ROM-u, ilekroć chcieliśmy umieścić dwa naboje do pracy tak, jak było w sprzęcie, używaliśmy
copy /b sonick.bin+sonic3.bin sonic3k.bin
. W ten sposób ich scalenie dałoby jeden wielki ROM, w którym Sonick miałby zestaw instrukcji (wskaźniki), aby użyć zasobów sonic3.źródło