Как изменить размер файла из командной строки (или в пакетном файле)?
Он должен обрабатывать файл как двоичный файл . Формат файла не имеет значения и является произвольным.
Расширение файла должно дополнить его нулями.
Сжатие файла должно усечь файл.
Другими словами:
Как вы дублируете функциональность SetEndOfFile
в командной строке?
windows
command-line
user541686
источник
источник
Ответы:
Я не верю, что функциональность существует в оболочке DOS, я подозреваю, что вам нужно использовать другую программу, чтобы выполнить работу. Вот несколько возможностей:
Существует инструмент под названием Trunc, который утверждает, что делает именно то, что вам нужно:
Вам нужно будет попробовать это, чтобы выяснить, как именно файл дополняется (например, с нулями или мусором), но в противном случае это, кажется, соответствует требованиям того, о чем вы просите.
fsutil - системный инструмент для Windows XP и более поздних версий, обладающий некоторыми функциональными возможностями, которые могут помочь. В частности,
fsutil file
кажется, что подкоманда может создавать, устанавливать длину, а также заполнять нулями файлы.В частности:
Создает заполненный нулями файл размером 1024 байта, но я не вижу способа усечь файл. Есть команда, которая устанавливает допустимую длину данных, но она не изменяет маркер EOF как:
UVHD - это шестнадцатеричный редактор, который, кажется, имеет функции, которые вы запрашиваете. Единственная проблема заключается в том, что он работает только под Windows / SFU (Services for Unix), а не под DOS. Что это на самом деле означает для конечного пользователя, я на самом деле не знаю, но у меня есть смутное подозрение, что SFU был отброшен в Vista и Win 7.
источник
trunc
делает то , что мне нужно. Да, и примечание: SFU (или, скорее, SUA - «Подсистема для приложений на основе Unix», иначе Interix) не был удален в Windows 7; К сожалению, это просто дополнительный компонент в окончательной версии. : \fsutil
и отредактировав мой ответ, но, как я заметил, я не вижу правильного способа усечения файлов.Конечно, для установки только на 0 байтов.
источник
Если у вас установлен GnuWin32, вы можете использовать его
dd
для этого.источник
попробуйте мою сборку усечения BSD для Windows .
РЕДАКТИРОВАТЬ: он не работает с файлами> 2 ГБ.
Альтернативы, которые хорошо работают с большими файлами:
источник