Jak zmienić rozmiar pliku z wiersza polecenia (lub pliku wsadowego)?
Musi traktować plik jako plik binarny . Format pliku jest nieistotny i arbitralny.
Rozszerzenie pliku powinno uzupełnić go zerami.
Zmniejszenie pliku powinno skrócić plik.
Innymi słowy:
Jak powielasz funkcjonalność SetEndOfFile
w wierszu polecenia?
windows
command-line
użytkownik541686
źródło
źródło
Odpowiedzi:
Nie wierzę, że funkcjonalność istnieje natywnie w powłoce DOS, podejrzewam, że musisz użyć innego programu, aby wykonać zadanie. Oto kilka możliwości:
Istnieje narzędzie o nazwie Trunc, które twierdzi, że robi dokładnie to, czego szukasz:
Musisz to wypróbować, aby dowiedzieć się, w jaki sposób plik jest wypełniany (np. Zerami lub śmieciami), ale w przeciwnym razie wydaje się, że pasuje to do tego, o co prosisz.
fsutil jest narzędziem systemowym Windows XP i nowszym, które wydaje się mieć pewne funkcje, które mogą pomóc. W szczególności
fsutil file
podkomenda wydaje się być w stanie tworzyć, ustawiać długość, a także zerować pliki wypełniania.Konkretnie:
Utworzy 1024 bajtowy plik wypełniony zerą, ale nie widzę sposobu na obcięcie pliku. Istnieje polecenie, które ustawia prawidłową długość danych, ale nie wydaje się modyfikować znacznika EOF jako:
UVHD to edytor szesnastkowy, który wydaje się mieć funkcje, o które prosisz. Jedynym problemem jest to, że działa tylko w systemie Windows / SFU (Services for Unix), a nie w DOS. Co to właściwie oznacza dla użytkownika końcowego, którego tak naprawdę nie wiem, ale mam niejasne podejrzenie, że SFU zostało upuszczone w Vista i Win 7.
źródło
trunc
robi to, czego potrzebuję. Aha, i uwaga: SFU (a raczej SUA - „Podsystem dla aplikacji uniksowych”, znany również jako Interix) nie został porzucony w Windows 7; to niestety teraz element opcjonalny w wersji Ultimate. : \fsutil
i edytowałem moją odpowiedź, ale jak zauważyłem, nie widzę prawidłowego sposobu obcinania plików.Oczywiście do ustawienia tylko 0 bajtów.
źródło
Jeśli masz zainstalowany GnuWin32, możesz
dd
to zrobić.źródło
wypróbuj moją skróconą wersję BSD dla Windows .
EDYCJA: nie działa z plikami> 2 GB.
Alternatywy, które działają dobrze w przypadku dużych plików:
źródło