Я не верю, что функциональность существует в оболочке DOS, я подозреваю, что вам нужно использовать другую программу, чтобы выполнить работу. Вот несколько возможностей:
Существует инструмент под названием Trunc, который утверждает, что делает именно то, что вам нужно:
Trunc - это приложение командной строки Windows для усечения файлов до указанного размера. Также можно увеличить файл.
Вам нужно будет попробовать это, чтобы выяснить, как именно файл дополняется (например, с нулями или мусором), но в противном случае это, кажется, соответствует требованиям того, о чем вы просите.
fsutil - системный инструмент для Windows XP и более поздних версий, обладающий некоторыми функциональными возможностями, которые могут помочь. В частности, fsutil file
кажется, что подкоманда может создавать, устанавливать длину, а также заполнять нулями файлы.
В частности:
fsutil file createnew "C:\temp\myfile" 1024
Создает заполненный нулями файл размером 1024 байта, но я не вижу способа усечь файл. Есть команда, которая устанавливает допустимую длину данных, но она не изменяет маркер EOF как:
Использование setvaliddata
В NTFS существует два важных понятия длины файла: маркер конца файла (EOF) и допустимая длина данных (VDL). EOF указывает фактическую длину файла. VDL определяет длину допустимых данных на диске. Любые операции чтения между VDL и EOF автоматически возвращают 0, чтобы сохранить требование повторного использования объекта C2.
UVHD - это шестнадцатеричный редактор, который, кажется, имеет функции, которые вы запрашиваете. Единственная проблема заключается в том, что он работает только под Windows / SFU (Services for Unix), а не под DOS. Что это на самом деле означает для конечного пользователя, я на самом деле не знаю, но у меня есть смутное подозрение, что SFU был отброшен в Vista и Win 7.