Mam plik nieco większy niż 500 MB, który powoduje pewne problemy.
Uważam, że problem dotyczy przyjętej konwencji końca linii (EOL). Chciałbym spojrzeć na plik w nieinterpretowanej postaci surowej (1), aby potwierdzić konwencję EOL pliku.
Jak mogę wyświetlić „plik binarny” pliku za pomocą czegoś wbudowanego w system Windows 7? Wolałbym unikać pobierania dodatkowych plików.
(1) Mój współpracownik i ja otworzyliśmy plik w edytorach tekstów, a one pokazują wiersze tak, jak można się spodziewać. Ale oba edytory tekstu będą otwierać pliki z różnymi konwencjami EOL i interpretować je automatycznie. (TextEdit i Emacs 24.2. Dla Emacsa stworzyłem drugi plik z tylko pierwszymi bajtami 4K używanymi head -c4096
na polu Linux i otworzyłem go z mojego okna Windows.
Próbowałem użyć trybu szesnastkowego w Emacsie, ale kiedy przeszedłem do trybu szesnastkowego i wróciłem do trybu tekstowego, zawartość bufora uległa zmianie, dodając widoczny ^ M na końcu każdej linii, więc nie jestem ufając temu w tej chwili.
Uważam, że problem może dotyczyć znaku (znaków) na końcu wiersza. Redakcja, z którą współpracowaliśmy z moim współpracownikiem (1), po prostu w sposób automatyczny rozpoznała konwencję końca linii i pokazała nam linie. Na podstawie innych dowodów uważam, że konwencja EOL dotyczy wyłącznie zwrotu karetki. (2) tylko powrót.
Aby wiedzieć, co faktycznie znajduje się w pliku, chciałbym spojrzeć na binarną zawartość pliku lub co najmniej kilka tysięcy bajtów pliku, najlepiej w formacie szesnastkowym, chociaż mógłbym pracować z dziesiętną lub ósemkową. Tylko zera byłyby dość szorstkie.
AKTUALIZACJA
Z wyjątkiem jednego sugerującego DEBUG
, wszystkie poniższe odpowiedzi działają do pewnego stopnia. Głosowałem za każdym z nich jako pomocnym. Moje pytanie było źle sformułowane. Podczas testowania każdego sugerowanego rozwiązania stwierdziłem, że naprawdę chciałem wyświetlać obok siebie szesnastkę i zawartość tekstową, i że chciałbym, aby było to coś, w którym po najechaniu kursorem na coś, albo wartość bajtu, albo znak tekstu, pasującą rzecz na druga strona zostanie podświetlona.
Naprawdę rozwiązałem swój problem, gdy tryb heksowy Emacsa zaczął działać „poprawnie”. Skończyło się na tym, że nie użyłem żadnej z tych odpowiedzi, tylko je testowałem (naprawdę powinienem zbadać dziwne zachowanie Emacsa i złożyć raport o błędzie).
Odpowiedzi:
Potrzebujesz „edytora szesnastkowego”. Używam „Hex Editor Neo” od lat i jest bardzo dobra. Jest dostępny w wersji bezpłatnej i płatnej . (I jestem pewien, że są dostępne inne podobne narzędzia).
źródło
Jeśli masz PowerShell w wersji 5.0 lub nowszej, możesz skorzystać z
powershell
wbudowanej funkcjiFormat-Hex
źródło
Format-Hex
nie jest dostępne w moim PowerShell; Po prostu pojawia się błąd „nierozpoznany”Wbudowany, szybki i brudny: uruchom
powershell
, uruchom:TotalCount to liczba bajtów, które chcesz odczytać z pliku.
Google „hexdump” PowerSumpa, aby uzyskać o wiele bardziej dopracowane / działające wersje.
Jeśli masz narzędzia Windows Resource Kit (niezupełnie wbudowane, ale zamknięte), możesz również użyć narzędzia linii cmd o nazwie
list.exe
. To mały edytor z trybem szesnastkowym. Zaprojektowany specjalnie do pracy z dużymi plikami:źródło
list.exe /?
polecenie pomocy nie zawiera zbyt wielu informacji, ale po wejściu do edytora wystarczy nacisnąć,?
aby zobaczyć polecenia.H
otwiera edytor Hex iF1
przełącza sposób wyświetlania HexDziała to również na wszystko po XP:
certutil -encodehex MyProgram.exe MyProgram.txt
XP wymaga pakietu narzędzi administracyjnych systemu Windows Server 2003 stąd:
https://www.microsoft.com/en-us/download/details.aspx?id=16770
źródło
Skopiuj plik do nazwy z
.COM
rozszerzeniem, gdzie podstawowa nazwa nie jest dłuższa niż osiem znaków. BiegaćWyświetli się
-
monit „ ”. Rodzajkilkakrotnie d WYŚWIETLACZ plik 128 bitów na raz. Rodzaj
aby wyświetlić 128 bajtów zaczynających się od adresu , które należy wpisać szesnastkowo, gdzie początkiem pliku jest adres 100. Wpisz
wyświetlać od adresu 1 do adresu 2 . Rodzaj
wyświetlać liczbę bajtów (długość) zaczynając od adresu . Liczba jest również wprowadzana w postaci szesnastkowej. Użyj,
Q
aby wyjść.Na przykład,
źródło
C:\>attrib debug.exe /s
. Wyniki:File not found - debug.exe
. Nie udało się znaleźć oficjalnego, debugowanie nie jest już obsługiwane , ale z tego, co widziałem w sieci, wygląda na to, że wsparcie debugowania zostało już jakiś czas temu usunięte. Znalazłem DebugDiag od Microsoft. (Dodatkowe pobieranie.) Debugowanie? Może obsługuje przeglądanie plików w formacie HEX? Dostarczony jako plik .MSI. Potrzebuje hasła administratora, aby zainstalować. Nie jestem jednymhead -c4096 bigFileName > smallFileName
na Linuksie, aby uzyskać pierwsze 4 KB plików. Linie są na tyle małe, że cztery KB mają dużo linii dla moich celówhexdump -C
w systemie Linux?HxD to przenośny edytor szesnastkowy, co oznacza, że nie jest wymagana instalacja i jest niczym więcej niż jednym plikiem exe.
http://mh-nexus.de/en/hxd/
Inną podobnie przenośną opcją jest Frhed:
http://frhed.sourceforge.net/en/screenshots/
źródło
Ponieważ system Windows 7 ma wbudowane środowisko dotnet Framework 3.5, będziesz mieć wbudowany kompilator C #, dzięki czemu możesz na przykład pobrać listę z http://illegalargumentexception.blogspot.co.uk/2008/04/c- file-hex-dump-application.html, a następnie skompiluj za pomocą
i powinieneś skończyć z printhex.exe, który powinien wyświetlać zarówno znaki szesnastkowe, jak i ascii.
źródło
Nie jest to idealne rozwiązanie, ale jeśli naprawdę nie chcesz niczego pobierać, możesz spróbować użyć fc / b (tzn. Porównywania plików w trybie binarnym), aby porównać ten plik z innym całkowicie innym plikiem, a wyświetli się heks wartości każdego bajtu, który jest inny. Możesz otrzymać pewne wartości, które są takie same w dwóch plikach, a więc mogą zostać pominięte z danych wyjściowych, ale możesz stwierdzić, czy tak się dzieje, sprawdzając brakujące wartości w kolumnie przesunięcia.
źródło
Możesz użyć funkcji PowerShell poniżej wraz z Get-Content, aby zobaczyć zrzut heksowy zawartości pliku, tj
Get-Content -Encoding Byte 'MyFile.bin' | Format-HexDump
. Zrzut pliku 222 KB zajmuje około 23 sekund, a w razie potrzeby dane wyjściowe można przekierować do pliku tekstowego, aby ułatwić sprawdzenie zrzutu.Dane wyjściowe wyglądają następująco:
źródło
Ponieważ Sublime text jest moim ulubionym edytorem, używam jego wtyczki do przeglądania plików heksadecymalnych. http://facelessuser.github.io/HexViewer/
źródło
Wiem, że używasz Emacsa, ale użytkownicy Vima mogą korzystać z
xxd
narzędzia:to znaczy
źródło