Как удалить пустые файлы (0 байт) в Windows?

Некоторые приложения создают пустые 0-байтовые файлы в своих папках данных и не могут их очистить. Со временем, если вы видите много нулевых файлов в иерархии папок, вот несколько способов найти все эти 0-байтовые файлы и удалить их.

Найти и / или удалить пустые (0 байт) файлы в Windows:

  1. с помощью утилиты «Найти пустые файлы-папки»
  2. с помощью поиска Windows
  3. используя командную строку
  4. используя PowerShell
  5. используя VBScript

Поиск и удаление 0-байтовых файлов рекурсивно в дереве папок

Важно отметить, что иногда удаление 0-байтовых файлов может быть проблематичным, поскольку некоторым приложениям они могут понадобиться в качестве заполнителя или по какой-либо другой причине. Если вы уверены, что вам не нужны никакие 0-байтовые файлы в пути к папке и хотите удалить их все, выполните одно из следующих действий.

Давайте начнем с аккуратного бесплатного стороннего инструмента с графическим интерфейсом, а затем рассмотрим родные методы.

1. Использование утилиты «Найти пустые файлы-папки»

Find Empty Files-n-Folders — отличный инструмент, который может рекурсивно находить и удалять пустые файлы (0 байт) и пустые папки в дереве папок.

Загрузите файл Find Empty Files-n-Folders (программа установки размером 600 КБ) с Ashisoft.com.

Выберите папку и нажмите «Сканировать сейчас».

удалить пустые папки в окнах

Инструмент будет перечислять пустые файлы и папки на отдельных вкладках.

На вкладке Пустые файлы нажмите Отметить все файлы а затем нажмите Удалить файлы.

удалить 0-байтовые пустые файлы в windows

Аналогичным образом, чтобы удалить 0-байтовые файлы в выбранном дереве папок, нажмите Пустые файлы Вкладка.

У Ashisoft.com есть и другие замечательные инструменты, которые вы можете проверить!

2. Использование поиска Windows

Windows Search позволяет вывести список всех 0-байтовых файлов, используя size: оператор запроса.

Откройте папку, в которой вы хотите найти или удалить пустые файлы.

В поле поиска введите size:empty или size:0 KB

найти и удалить 0-байтовые файлы в windows

Чтобы отфильтровать результаты по расширению файла (например, файлы javascript → расширение .js ), используйте следующий синтаксис предварительного запроса (AQS):

size:empty AND ext:js

найти и удалить 0-байтовые файлы в windows

3. Использование командной строки

Чтобы вывести список всех 0-байтовых (0 КБ) файлов в виде папки и подпапок рекурсивно и вывести имена в файл, используйте следующую команду.

Обратите внимание, что вам нужно будет запустить команду из папки, в которой вы хотите найти или удалить пустые (0 КБ) файлы.

for /r %F in (*) do @if %~zF==0 echo "%F" >>d:\0byte-files.txt

Кроме того, вы можете включить путь к целевой папке в for команда, чтобы вам не пришлось менять каталог в окне консоли. Пример:

for /r "d:\websites" %F in (*) do @if %~zF==0 echo "%F" >>d:\0byte-files.txt

Таким образом, вам не нужно переключаться на эту конкретную папку в командной строке

Полный список вывода 0-байтовых файлов записывается в файл с именем 0byte-files.txt на D:\ привод.

найти и удалить 0-байтовые файлы в windows

Чтобы удалить файлы, вы должны использовать del команда вместо echo,

for /r %F in (*.*) do @if %~zF==0 del "%F"

или укажите путь к целевой папке в самой команде:

for /r "d:\websites" %F in (*.*) do @if %~zF==0 del "%F"

Найти и удалить 0-байтовые файлы с определенным расширением

В приведенных выше примерах вы можете даже фильтровать по расширению файла. Например, чтобы удалить 0-байт .txt файлы, вы бы использовали *.txt вместо того *.* или *

for /r %F in (*.txt) do @if %~zF==0 del "%F"

или с указанием пути к папке:

for /r "d:\websites" %F in (*.txt) do @if %~zF==0 del "%F"

Что бы удалить все пустое .txt файлы из текущей папки и подпапок или из указанного дерева папок рекурсивно.

Создать пакетный файл

Если вы хотите сделать командный файл найти и перечислить пустые файлы и вывод результатов в текстовый файл, вот один:

@echo off
set out="d:\0byte-files.txt"
for /r "%~1." %%A in (*.*) do if %%~zA == 0 echo "%%~fA" >> %out%

Сохраните вышеуказанное содержимое как find-empty-files.bat,

к удалять Пустые файлы вместо вывода списка файлов, используйте этот пакетный файл:

@echo off
for /r "%~1." %%A in (*.*) do if %%~zA == 0 del "%%~fA"

к запустить пакетный файл для папки рекурсивно, вы бы использовали следующий синтаксис:

d:\scripts\find-empty-files.bat  d:\websites

Что делает приведенная выше команда?

  • for /r %F in (*) рекурсивно перебирает файлы в указанной папке и подпапках.
  • if %~zF==0 проверяет, является ли повторяемый файл 0-байтовым файлом
  • del %%~fA удалить 0-байтовый файл

СВЯЗАННЫЙ: Как автоматически находить и удалять пустые папки в Windows

4. Использование PowerShell

Запустите PowerShell.exe и используйте один из следующих способов:

Список пустых (0 КБ) файлов

к получить список 0-байтовых файлов в дереве папок, используйте этот синтаксис командной строки:

Get-ChildItem -Path "D:\websites\test" -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -and $_.Length -eq 0 }  | Select -ExpandProperty FullName

Чтобы вывести список в файл:

Get-ChildItem -Path "D:\websites" -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -and $_.Length -eq 0 } | Select -ExpandProperty FullName | Set-Content -Path d:\found.txt

найти и удалить 0-байтовые файлы в windows - powershell

Чтобы вывести список в виде сетки:

Get-ChildItem -Path "D:\websites" -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -and $_.Length -eq 0 }  | out-gridview

Перечислить только конкретный тип файла (например., .bmp):

Get-ChildItem -Path "D:\websites" -include *.bmp -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -and $_.Length -eq 0 }  | out-gridview

Удалить пустые (0 КБ) файлы

к удалять все 0-байтовые файлы в дереве папок, используйте этот синтаксис командной строки:

Get-ChildItem -Path "D:\websites" -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -and $_.Length -eq 0 }  | remove-item

Удалить 0-байтовые файлы, имеющие конкретное расширение (например., .bmp)

Get-ChildItem -Path "D:\websites" -include *.bmp -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -and $_.Length -eq 0 }  | remove-item

4. Использование VBScript

удалить 0-байтовые пустые файлы в windows - vbscriptСледующий VBScript рекурсивно очищает пустые (0-байтовые) файлы в дереве папок.

Скопируйте следующий код в Блокнот и сохраните его как del-zero-byte-files.vbs

Option Explicit
If (WScript.Arguments.Count  1) Then
WScript.Echo("Usage: cscript DeleteEmptyFolders.vbs {path}")
WScript.Quit(1)
End If
Dim strPath : strPath = WScript.Arguments(0)
Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
Dim objFolder : Set objFolder = fso.GetFolder(strPath)
Dim sDelList, sDelErr, sFilePath
Dim iCnt
iCnt = 0
DeleteZeroByteFiles objFolder
Sub DeleteZeroByteFiles(folder)
Dim subfolder, file
On Error Resume Next
'Skip errors when accessing Junctions, etc.
For Each subfolder In folder.SubFolders
DeleteZeroByteFiles subfolder
Next
On Error Goto 0
For Each file In folder.files
If file.size = 0 Then
sFilePath = file.Path
On Error Resume Next
fso.DeleteFile file, True
If Err.number  0 Then
sDelErr = sDelErr & Err.number & ": " & Err.description & _
vbCrLf & sFilePath & vbCrLf & vbCrLf
Else
sDelList = sDelList & vbCrLf & sFilePath
iCnt  = iCnt + 1
End If
On Error Goto 0
End If
Next
End Sub
If sDelList = "" And sDelErr = "" Then
WScript.Echo "No Empty files found under the " & _
"""" & strPath & """" & " tree"
WScript.Quit
End If
If sDelList  "" then sDelList = "List of empty files deleted" & vbCrLf _
& String(38,"-") & vbCrLf & sDelList & vbCrLf & _
vbCrLf  & "Total: " & iCnt & " files deleted."
If sDelErr  "" then sDelErr = "These files could not be deleted" & _
vbCrLf & String(45,"-") & vbCrLf & sDelErr
WScript.Echo sDelList & vbCrLf & vbCrLf & sDelErr

использование

Чтобы запустить скрипт для папки, вы можете использовать wscript.exe или cscript.exe, как показано ниже:

cscript d:\scripts\del-zero-byte-files.vbs "d:\travel documents"
wscript d:\scripts\del-zero-byte-files.vbs "d:\travel documents"

CScript.exe показывает выходные данные в окне консоли. Это означает, что вам нужно запустить его из окна командной строки, чтобы увидеть результат.

WScript.exe показывает результаты в графическом интерфейсе.

через меню «Отправить»

Вы можете создать ярлык для скрипта в папке SendTo и назвать его как Удалить 0-байтовые файлы. Приставка wscript.exe в целевом поле свойств ярлыка.

удалить 0-байтовые пустые файлы в windows - vbscript

Затем щелкните правой кнопкой мыши папку, в которой вы хотите рекурсивно удалить пустые файлы в дереве папок → щелкните Отправить → нажмите Удалить 0-байтовые файлы в меню «Отправить».

Вы увидите список удаленных пустых файлов и общее количество, а также файлы, которые невозможно удалить, с отображением соответствующих кодов ошибок.

удалить 0-байтовые пустые файлы в windows - vbscript

СВЯЗАННЫЙ: Как автоматически удалять пустые папки в Windows

Это оно!

Ссылка на основную публикацию
Adblock
detector