Есть ли в Windows встроенная команда для заполнения файла нулевыми / пустыми байтами?
Да. Вы можете использовать fsutil
для этого:
> fsutil file setzerodata /? Usage : fsutil file setzerodata offset=<val> length=<val> <filename> offset : File offset, the start of the range to set to zeroes length : Byte length of the zeroed range Eg : fsutil file setzerodata offset=100 length=150 C:\Temp\sample.txt
Чтобы обнулить заполнение всего файла, вам нужно использовать смещение 0
и вам нужно знать длину файла.
Можем ли мы использовать пакетный файл, который автоматически вычислит размер?
Конечно.
Используйте следующий пакетный файл (zero.cmd):
@echo off setlocal enabledelayedexpansion for %%a in (%1) do ( fsutil file setzerodata offset=0 length=%%~za %%a ) endlocal
Использование:
- Вы можете передать одно имя файла в качестве аргумента:
zero test.txt
или подстановочный знак:zero *.txt
Пример:
> type test.txt abc foo$ foo bar > zero test.txt Zero data is changed > type test.txt >
Дальнейшее чтение
- Индекс AZ командной строки Windows CMD
- Категоризованный список команд Windows CMD
- fsutil - специфичные для файла и тома команды, управление жесткими ссылками, управление квотами, USN, разреженный файл, идентификатор объекта и управление точками повторной обработки
- параметры - аргумент командной строки (или параметр) - это любое значение, переданное в пакетный скрипт.