Подскажите команду для терминала в Windows, чтобы посчитать размер нулевых байт в файле или накопителе

Подскажите команду для терминала в Windows, чтобы посчитать размер нулевых байт в файле или накопителе

Встроенной команды нет. Find/findstr работают с текстом/текстовыми файлами, читать побайтово в cmd никак. В файле - не проблема набросать на встроенном в Windows vbs/jscript ну или PowerShell. Ну или создать с помощью cmd такой скрипт и запустить, но проще сразу скриптом.

Можно наверное было-бы пойти на хитрость и сравнивать с помощью fc (команда сравнения содержимого двух файлов в том числе и двоичных) проверяя разницу между файлом из нулевого байта и файлом в котором надо найти 0, но остается придумать как пропускать первые n байт. Или создать целиком файл такого-же размера из нулевых байт и сделать fc. Соотв. Посчитать кол-во.

Вообще какая цель? Какая разница сколько нулевых байт в файле?

Пишешь на JavaScript нужный тебе функционал и засовываешь запуск этого файла в bat файл

Set FS = CreateObject("Scripting.FileSystemObject")
Set file = FS.GetFile("file")
WScript.Echo file.Size
a = file.OpenAsTextStream().Read(file.Size)
count = Len(a) - Len(Replace(a,&H0, ""))
WScript.Echo count

Добавить комментарий