Деякі програми створюють порожні файли розміром 0 байт у своїх папках даних і не можуть їх очистити. З часом, якщо ви побачите багато нуль-байтових файлів в ієрархії папок, ось кілька способів знайти всі ці 0-байтові файли та видалити їх.
Знайдіть і/або видаліть порожні (0 байт) файли в Windows:
- за допомогою утиліти «Знайти порожні файли і папки».
- за допомогою пошуку Windows
- за допомогою командного рядка
- за допомогою PowerShell
- за допомогою VBScript
- за допомогою DelEmpty.exe
Знаходьте та видаляйте 0-байтові файли рекурсивно в дереві папок
Важливо відзначити, що довільне видалення 0-байтових файлів іноді може бути проблематичним, оскільки деяким програмам вони можуть знадобитися як заповнювач або з якихось інших причин. Якщо ви впевнені, що вам не потрібні файли розміром 0 байт у шляху до папки, і хочете видалити їх усі, скористайтеся одним із наведених нижче методів.
Давайте почнемо з акуратного стороннього безкоштовного інструменту GUI, а потім розглянемо власні методи.
1. Використання утиліти «Знайти порожні файли-n-папки».
Find Empty Files-n-Folders — чудовий інструмент, який може знаходити та видаляти порожні файли (0-байт) і порожні папки рекурсивно під деревом папок.
Завантажити Знайдіть порожні файли і папки (інсталятор 600 КБ) з Ashisoft.com.
Виберіть папку та натисніть Сканувати зараз.
Інструмент покаже пусті файли та папки на окремих вкладках.
На вкладці Пусті файли натисніть Позначте всі файли а потім клацніть Видалити файли.
Аналогічно, до видалити 0-байтні файли у вибраному дереві папок клацніть на Порожні файли табл.
Ashisoft.com має інші чудові інструменти, які ви можете перевірити!
2. Використання пошуку Windows
Пошук Windows дозволяє вам перерахувати всі 0-байтові файли за допомогою розмір:
оператор запиту.
Відкрийте папку, в якій потрібно знайти або видалити порожні файли.
У вікні пошуку введіть розмір: порожній
або розмір: 0 Кб
Щоб відфільтрувати результати за розширенням файлу (наприклад, файли javascript → розширення .js
), використовуйте наступне Синтаксис попереднього запиту (AQS):
розмір: порожній І довш.: js
3. Використання командного рядка
Щоб перерахувати всі файли розміром 0 байт (0 КБ) є папкою та підпапками рекурсивно та вивести імена до файлу, скористайтеся такою командою.
Зверніть увагу, що вам потрібно буде запустити команду з папки, де ви хочете знайти або видалити порожні (0 КБ) файли.
для /r %F у (*) зробити @if %~zF==0 echo "%F" >>d:\0byte-files.txt
Крім того, ви можете включити шлях цільової папки в файл для
команду, щоб вам не довелося змінювати каталог у вікні консолі. приклад:
для /r "d:\websites" %F у (*) зробити @if %~zF==0 echo "%F" >>d:\0byte-files.txt
Таким чином, вам не доведеться перемикатися до цієї конкретної папки в командному рядку
Повний список вихідних файлів розміром 0 байт записується у файл з ім'ям 0byte-files.txt
на D:\
диск.
Щоб видалити файли, скористайтеся del
команда замість відлуння
.
для /r %F у (*.*) виконати @if %~zF==0 del "%F"
або вкажіть шлях цільової папки в самій команді:
для /r "d:\websites" %F у (*.*) виконайте @if %~zF==0 del "%F"
Знайдіть і видаліть файли розміром 0 байт із певним розширенням файлу
У наведених вище прикладах ви навіть можете фільтрувати за розширенням файлу. Наприклад, щоб видалити 0-байт .txt
файли, які ви б використали *.txt
замість *.*
або *
для /r %F у (*.txt) зробити @if %~zF==0 del "%F"
або із зазначенням шляху до папки:
для /r "d:\websites" %F у (*.txt) виконайте @if %~zF==0 del "%F"
Це видалило б усі порожні .txt
файли з поточної папки та вкладених папок або рекурсивно у вказаному дереві папок.
Створіть пакетний файл
Якщо ви хочете створити пакетний файл для знайти і перерахувати пусті файли та виведіть результати у текстовий файл, ось один:
@echo off. set out="d:\0byte-files.txt" для /r "%~1." %%A в (*.*) робити, якщо %%~zA == 0 echo "%%~fA" >> %out%
Збережіть наведений вище вміст як find-empty-files.bat
.
До видалити пусті файли замість виведення списку файлів, використовуйте цей пакетний файл:
@echo off. для /r "%~1." %%A в (*.*) робити, якщо %%~zA == 0 del "%%~fA"
До запустити командний файл щодо папки рекурсивно ви використовуєте такий синтаксис:
d:\scripts\find-empty-files.bat d:\websites
Що робить наведена вище команда?
-
для /r %F у (*)
рекурсивно ітерує файли у згаданій папці та підпапках. -
якщо %~zF==0
перевіряє, чи є повторюваний файл 0-байтовим файлом -
del %%~fA
видалити 0-байтовий файл
4. Використання PowerShell
Запустіть PowerShell.exe і скористайтеся одним із таких методів:
Список порожніх (0 КБ) файлів
До отримати список 0-байтових файлів у дереві папок, використовуйте такий синтаксис командного рядка:
Get-ChildItem -Шлях "D:\websites\test" -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -і $_.Length -eq 0 } | Виберіть -ExpandProperty FullName
Щоб вивести список у файл:
Get-ChildItem -Шлях "D:\websites" -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -і $_.Length -eq 0 } | Виберіть -ExpandProperty FullName | Set-Content -Path d:\found.txt
Щоб вивести список у сітку:
Get-ChildItem -Шлях "D:\websites" -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -і $_.Length -eq 0 } | out-gridview
Перелічити лише а конкретний тип файлу (наприклад, .bmp
) :
Get-ChildItem -Path "D:\websites" -include *.bmp -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -і $_.Length -eq 0 } | out-gridview
Видалити порожні (0 КБ) файли
До видалити для всіх 0-байтових файлів у дереві папок використовуйте такий синтаксис командного рядка:
Get-ChildItem -Шлях "D:\websites" -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -і $_.Length -eq 0 } | видалити елемент
Щоб видалити 0-байтові файли, які мають файл конкретне розширення (наприклад, .bmp
)
Get-ChildItem -Path "D:\websites" -include *.bmp -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -і $_.Length -eq 0 } | видалити елемент
5. Використання VBScript
Наступний VBScript очищає порожні (0-байтні) файли в дереві папок рекурсивно.
Скопіюйте наступний код у Блокнот і збережіть його як del-zero-byte-files.vbs
Параметр Явне якщо (WScript. Аргументи. Count <> 1) Потім WScript. Echo("Використання: cscript DeleteEmptyFolders.vbs {path}") WScript. Вийти (1) End If Dim strPath: strPath = WScript. Аргументи (0) Dim fso: Встановіть fso = CreateObject("Сценарії. FileSystemObject") Dim objFolder: встановити objFolder = fso. GetFolder (strPath) Dim sDelList, sDelErr, sFilePath. Dim iCnt. iCnt = 0 DeleteZeroByteFiles objFolder Sub DeleteZeroByteFiles (папка) Dim підпапка, файл On Error Resume Next 'Пропустити помилки під час доступу до вузлів тощо. Для кожної підпапки в папці. Підпапки Підпапка DeleteZeroByteFiles Далі при помилці Перейти до 0 Для кожного файлу У folder.files Якщо file.size = 0 Тоді sFilePath = файл. Шлях у разі помилки Відновити далі fso. DeleteFile file, True Якщо Err.number <> 0 Тоді sDelErr = sDelErr & Err.number & ": " & Err.description & _ vbCrLf & sFilePath & vbCrLf & vbCrLf Інакше sDelList = sDelList & vbCrLf & sFilePath iCnt = iCnt + 1 End If On Error Перейти до 0 End If Далі. End Sub Якщо sDelList = "" І sDelErr = "" Тоді WScript. Echo "Під " & _ & strPath & & " дерева WScript не знайдено порожніх файлів. Вийти. End If Якщо sDelList <> "" then sDelList = "Список порожніх файлів видалено" & vbCrLf _ & String (38,"-") & vbCrLf & sDelList & vbCrLf & _ vbCrLf & "Усього: " & iCnt & " файли видалено." Якщо sDelErr <> "" then 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 | Включити підкаталоги (перехід підпапки) |
-л | Перелічіть те, що буде видалено (не видалятиме) |
-у | Видалити без підказки (y/n). |
Приклад 1: До список пусті файли в каталозі та його підкаталогах я використовував наступний синтаксис командного рядка:
DelEmpty.exe "Нова папка" -f -c -s -y -l
Наведена вище команда показує список порожніх папок, але не видаляє їх з моменту -л
(лише список) використовується перемикач.
Для імен папок, які містять пробіл (и) — наприклад, Mozilla Firefox
, не забудьте включити подвійні лапки навколо шляху.
Приклад 2: До видалити пусті файли в папці та підпапках, я запустив той самий командний рядок, але без -л
перемикач:
DelEmpty.exe "Нова папка" -f -c -s -y
Чи знаєте ви якусь іншу утиліту, яка може переміщати підпапки та видаляти порожні файли? Давайте знати ваші коментарі.
Одне невелике прохання: якщо вам сподобався цей пост, поділіться ним?
Одна ваша "крихітна" публікація серйозно допомогла б у розвитку цього блогу. Кілька чудових пропозицій:- Закріпіть!
- Поділіться ним у своєму улюбленому блозі + Facebook, Reddit
- Твіттер!
![езойський](/f/e21ab1194daa0428d27d48cfeefe4507.png)