Некоторые приложения создают пустые 0-байтовые файлы в своих папках с данными и не могут их очистить. Если со временем вы увидите много файлов с нулевым байтом в иерархии папок, вот несколько способов найти все эти файлы с нулевым байтом и удалить их.
Найдите и / или удалите пустые (0 байт) файлы в Windows:
- с помощью утилиты «Найти пустые файлы и папки»
- с помощью Windows Search
- с помощью командной строки
- используя PowerShell
- используя VBScript
- используя DelEmpty.exe
Рекурсивный поиск и удаление 0-байтовых файлов в дереве папок
Важно отметить, что произвольное удаление 0-байтовых файлов иногда может быть проблематичным, поскольку некоторым приложениям они могут понадобиться в качестве заполнителя или по какой-либо другой причине. Если вы уверены, что вам не нужны 0-байтовые файлы в пути к папке, и вы хотите удалить их все, воспользуйтесь одним из следующих способов.
Давайте начнем с красивого стороннего бесплатного инструмента с графическим интерфейсом, а затем рассмотрим собственные методы.
1. Использование утилиты «Найти пустые файлы и папки»
Find Empty Files-n-Folders - отличный инструмент, который может находить и удалять пустые файлы (0-байтовые) и пустые папки рекурсивно по дереву папок.
Скачать Найти пустые файлы и папки (Установщик 600 КБ) с сайта Ashisoft.com.
Выберите папку и нажмите Сканировать сейчас.
Инструмент отобразит пустые файлы и папки на отдельных вкладках.
На вкладке "Пустые файлы" нажмите Отметить все файлы а затем щелкните Удалить файлы.
Аналогично удалить 0-байтовые файлы в выбранном дереве папок нажмите на Пустые файлы таб.
На Ashisoft.com есть и другие замечательные инструменты, которые вы можете попробовать!
2. Использование Windows Search
Windows Search позволяет вам перечислить все 0-байтовые файлы, используя размер:
оператор запроса.
Откройте папку, в которой вы хотите найти или удалить пустые файлы.
В поле поиска введите размер: пустой
или размер: 0 КБ
Чтобы отфильтровать результаты по расширению файла (например, файлы javascript → расширение .js
), используйте следующее Синтаксис расширенного запроса (AQS):
размер: пустой И ext: js
3. Использование командной строки
Чтобы перечислить все 0-байтовые (0 КБ) файлы, представляющие собой папку и подпапки, рекурсивно и вывести имена в файл, используйте следующую команду.
Обратите внимание, что вам нужно будет запустить команду из папки, в которой вы хотите найти или удалить пустые (0 КБ) файлы.
для / r% F в (*) выполните @if% ~ zF == 0 echo "% F" >> d: \ 0byte-files.txt
Кроме того, вы можете включить путь к целевой папке в за
, чтобы вам не пришлось менять каталог в окне консоли. Пример:
для / r "d: \ sites"% F в (*) do @if% ~ zF == 0 echo "% F" >> d: \ 0byte-files.txt
Таким образом, вам не нужно переключаться на эту папку в командной строке.
Полный список выходных 0-байтовых файлов записывается в файл с именем 0byte-files.txt
на D: \
водить машину.
Чтобы удалить файлы, вы должны использовать дель
команда вместо эхо
.
for / r% F в (*. *) do @if% ~ zF == 0 del "% F"
или укажите путь к целевой папке в самой команде:
для / r "d: \ sites"% F в (*. *) do @if% ~ zF == 0 del "% F"
Найти и удалить 0-байтовые файлы с определенным расширением.
В приведенных выше примерах вы даже можете фильтровать файлы по расширению. Например, чтобы удалить 0-байтовый .текст
файлы, которые вы бы использовали *.текст
вместо *.*
или *
для / r% F в (* .txt) сделать @if% ~ zF == 0 del "% F"
или с указанием пути к папке:
для / r "d: \ sites"% F в (* .txt) сделать @if% ~ zF == 0 del "% F"
Это удалило бы все пустые .текст
файлы из текущей папки и подпапок или рекурсивно в указанном дереве папок.
Создать командный файл
Если вы хотите создать командный файл для найти и перечислить пустые файлы и вывести результаты в текстовый файл, вот один из них:
@ эхо выкл. set out = "d: \ 0byte-files.txt" для / r "% ~ 1." %% A in (*. *) Делать, если %% ~ zA == 0 echo "%% ~ fA" >>% out%
Сохраните приведенное выше содержимое как найти пустые файлы.bat
.
К Удалить пустые файлы вместо вывода списка файлов, используйте этот командный файл:
@ эхо выкл. для / r "% ~ 1." %% A в (*. *) Делать, если %% ~ zA == 0 del "%% ~ fA"
К запустить командный файл рекурсивно для папки, вы должны использовать следующий синтаксис:
d: \ scripts \ find-empty-files.bat d: \ sites
Что делает вышеуказанная команда?
-
для / r% F в (*)
рекурсивно выполняет итерацию файлов в указанной папке и подпапках. -
если% ~ zF == 0
проверяет, является ли повторяемый файл 0-байтовым файлом -
del %% ~ fA
удалить 0-байтовый файл
4. Использование PowerShell
Запустите PowerShell.exe и используйте один из следующих методов:
Список пустых (0 КБ) файлов
К получить список 0-байтовых файлов в дереве папок используйте следующий синтаксис командной строки:
Get-ChildItem -Path "D: \ sites \ test" -Recurse -Force | Where-Object {$ _. PSIsContainer -eq $ false -and $ _. Length -eq 0} | Выберите -ExpandProperty FullName
Чтобы вывести список в файл:
Get-ChildItem -Path "D: \ sites" -Recurse -Force | Where-Object {$ _. PSIsContainer -eq $ false -and $ _. Length -eq 0} | Выберите -ExpandProperty FullName | Set-Content -Path d: \ found.txt
Чтобы вывести список в виде сетки:
Get-ChildItem -Path "D: \ sites" -Recurse -Force | Where-Object {$ _. PSIsContainer -eq $ false -and $ _. Length -eq 0} | вне сетки
Чтобы перечислить только конкретный тип файла (например., .bmp
) :
Get-ChildItem -Path "D: \ sites" -include * .bmp -Recurse -Force | Where-Object {$ _. PSIsContainer -eq $ false -and $ _. Length -eq 0} | вне сетки
Удалить пустые (0 КБ) файлы
К Удалить все 0-байтовые файлы в дереве папок используйте этот синтаксис командной строки:
Get-ChildItem -Path "D: \ sites" -Recurse -Force | Where-Object {$ _. PSIsContainer -eq $ false -and $ _. Length -eq 0} | удалить объект
Чтобы удалить 0-байтовые файлы с конкретное расширение (например., .bmp
)
Get-ChildItem -Path "D: \ sites" -include * .bmp -Recurse -Force | Where-Object {$ _. PSIsContainer -eq $ false -and $ _. Length -eq 0} | удалить объект
5. Использование VBScript
Следующий сценарий VBScript рекурсивно очищает пустые (0-байтовые) файлы в дереве папок.
Скопируйте следующий код в Блокнот и сохраните его как del-zero-byte-files.vbs
Параметр Explicit If (WScript. Аргументы. Count <> 1) Тогда WScript. Echo ("Использование: cscript DeleteEmptyFolders.vbs {path}") WScript. Выйти (1) Конец, если Dim strPath: strPath = WScript. Аргументы (0) Dim fso: Set fso = CreateObject ("Scripting. FileSystemObject ") Dim objFolder: установите objFolder = fso. GetFolder (strPath) Dim sDelList, sDelErr, sFilePath. Dim iCnt. iCnt = 0 DeleteZeroByteFiles objFolder Sub DeleteZeroByteFiles (папка) Dim subfolder, file On Error Resume Next 'Пропускать ошибки при доступе к узлам и т. д. Для каждой подпапки В папке. Подпапки Подпапка DeleteZeroByteFiles Далее при ошибке Перейти к 0 Для каждого файла В папке.files Если file.size = 0 Тогда sFilePath = file. Путь при ошибке Возобновить Далее fso. DeleteFile file, True Если Err.number <> 0 Then sDelErr = sDelErr & Err.number & ":" & Err.description & _ vbCrLf & sFilePath & vbCrLf & vbCrLf Иначе sDelList = sDelList & vbCrLf & sFilePath iCnt = iCnt + 1 End If On Error Goto 0 End If Следующий. End Sub If sDelList = "" And sDelErr = "" Тогда WScript. Echo "Нет пустых файлов в дереве WScript" & _ & strPath & & ". Покидать. Конец Если Если sDelList <> "" then sDelList = "Список удаленных пустых файлов" & vbCrLf _ & String (38, "-") & vbCrLf & sDelList & vbCrLf & _ vbCrLf & "Итого: Файлы "& iCnt &" удалены. "Если sDelErr <>" ", то sDelErr =" Эти файлы не могут быть удалены "& _ vbCrLf & String (45," - ") & vbCrLf & sDelErr WScript. Echo sDelList & vbCrLf & vbCrLf & sDelErr
использование
Чтобы запустить сценарий для папки, вы можете использовать wscript.exe или cscript.exe, как показано ниже:
cscript d: \ scripts \ del-zero-byte-files.vbs "d: \ проездные документы" wscript d: \ scripts \ del-zero-byte-files.vbs "d: \ проездные документы"
CScript.exe показывает вывод в окно консоли. Это означает, что вам нужно будет запустить его из окна командной строки, чтобы увидеть результат.
WScript.exe показывает результаты в графическом интерфейсе.
через меню Отправить
Вы можете создать ярлык для скрипта в своем Отправить в папку и назовите это как Удалить 0-байтовые файлы. Префикс wscript.exe
в поле назначения свойств ярлыка.
Затем щелкните правой кнопкой мыши папку, из которой вы хотите рекурсивно удалить пустые файлы в дереве папок → щелкните Отправить → нажмите Удалить 0-байтовые файлы в меню «Отправить».
Вы увидите список удаленных пустых файлов и их общее количество, а также файлы, которые не удалось удалить, с соответствующими кодами ошибок.
6. Использование DelEmpty.exe
DelEmpty.exe - это консольный инструмент от IntelliAdmin, который может рекурсивно удалять пустые каталоги. Эта программа также может быстро удалить пустые 0-байтовые файлы рекурсивно.
Ниже приводится синтаксис командной строки для программы:
ПАРАМЕТРЫ DelEmpty.exe [ПУТЬ]
Аргумент | Описание |
-f | Удалить пустые (0-байтовые) файлы |
-d | Удалить пустые каталоги |
-v | Подробный режим |
-c | Режим подтверждения (показывает, что было удалено) |
-s | Включить подкаталоги (переходить по подпапкам) |
-l | Перечислите, что будет удалено (не будет удалять) |
-у | Удалить без запроса (да / нет) |
Пример 1: К список пустые файлы в каталоге и его подкаталогах, я использовал следующий синтаксис командной строки:
DelEmpty.exe "Новая папка" -f -c -s -y -l
Приведенная выше команда показывает список пустых папок, но не удаляет их, так как -l
(только список) используется переключатель.
Для имен папок, содержащих пробелы - например, Mozilla Firefox
, не забудьте заключить путь в двойные кавычки.
Пример 2: К Удалить пустые файлы в папке и подпапках, я запустил ту же командную строку, но без -l
выключатель:
DelEmpty.exe "Новая папка" -f -c -s -y
Знаете ли вы какую-либо другую утилиту, которая может перемещаться по подпапкам и удалять пустые файлы? Дайте знать ваши комментарии.
Одна небольшая просьба: если вам понравился этот пост, поделитесь, пожалуйста, этим?
Одна "крошечная" публикация от вас серьезно помогла бы росту этого блога. Несколько отличных предложений:- Приколи это!
- Поделитесь этим в своем любимом блоге + Facebook, Reddit
- Напишите об этом в Твиттере!