Как автоматически удалить пустые папки в Windows - Winhelponline

How Remove Empty Folders Automatically Windows Winhelponline

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



Пустые папки не занимают место на диске, но, чтобы лучше организовать данные, вы можете время от времени удалять их.



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



Содержание

  1. Удалите пустые папки с помощью «Найти пустые файлы и папки». '
  2. Удалите пустые папки с помощью За и rd команды
  3. Удалите пустые папки с помощью Robocopy
  4. Удалите пустые папки с помощью PowerShell
  5. Удалите пустые папки с помощью сценариев Windows
  6. Удалите пустые папки с помощью DelEmpty.exe

Как найти и удалить пустые папки в Windows?

Пустая папка или каталог - это папка, в которой нет файла или подкаталога. Пустые папки не занимают места на диске, но слишком много их может доставить неудобства. Чтобы найти и удалить их, воспользуйтесь одним из следующих способов.

Важный: Запуск автоматизированного инструмента или пакетного файла для рекурсивного удаления пустых папок на всем системном диске обычно не рекомендуется. Это связано с тем, что некоторые программы могут перестать работать и вызывать странную ошибку, когда обнаруживается, что отсутствует важная папка. Как всегда, применяется стандартное предупреждение. Перед тем, как приступить к работе с файловой системой или реестром Windows, обязательно сделайте соответствующие резервные копии, желательно на внешнем диске.



СВЯЗАННЫЙ: Рекурсивный поиск и удаление 0-байтовых файлов в папке в Windows

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

1. Удалите пустые папки с помощью утилиты «Найти пустые файлы и папки».

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

  1. Скачать Найти пустые файлы и папки (Установщик 600 КБ) с сайта Ashisoft.com.
  2. Выберите папку и нажмите Сканировать сейчас.
    удалить пустые папки в windows
    Инструмент отобразит пустые файлы и папки на отдельных вкладках.
  3. Нажмите Отметить все папки а затем щелкните Удалить папки .
    удалить пустые папки в windows
    Точно так же, если вы хотите удалить 0-байтовые файлы в выбранном дереве папок нажмите на Пустые файлы таб.

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


2. Удалите пустые папки с помощью команд «for» и «rd».

Вы можете использовать внутренние команды командной строки для и rd чтобы пронумеровать список папок и удалить пустые.

  1. Нажмите и удерживайте клавишу Shift, щелкните папку правой кнопкой мыши и выберите Открыть командное окно здесь . Откроется командная строка в текущем местоположении папки, что также можно проверить в консоли. Заметка: Вы должны убедиться, что вы запускаете следующую команду из точного пути к родительской папке, в которой вам нужно найти и удалить пустые подпапки.
  2. Как только вы окажетесь в нужном каталоге в командной строке, запустите эту командную строку:
    for / f 'delims ='% i in ('dir / s / b / ad ^ | sort / r') do rd '% i' 2> NUL (или) for / f 'usebackq delims ='% i in ( `'dir / s / b / ad | sort / r' ') do rd'% i '2> NUL

    удалить пустые папки с помощью команды for и rd - batch

    Это удаляет все пустые каталоги в подкаталогах из пути к базовой папке, включая вложенные пустые папки.

    Если вы собираетесь использовать указанную выше команду в пакетном файле, замените с участием %%я .

значок предупреждения осторожноВажный: Вышеупомянутая команда не удаляю папки с иностранными символами - например, 蜍 穂. Вы можете захотеть проверить DelEmpty.exe (рассматривается в этой статье) или другие методы удаления папок с символами Юникода.

Вышеупомянутая командная строка любезно предоставлена ​​Рэймондом Ченом из Microsoft в его блоге. Старая новая вещь . В этом посте командная строка Раймонда была немного изменена, теперь она также удаляет имена папок, содержащие пробелы.

Как работает команда

Приведенная выше команда выводит список всех подкаталогов (рекурсивно) в текущем базовом пути и сортирует список ( sort / r ) в обратном порядке. Сортировка в обратном порядке должна гарантировать, что перечисление выполняется снизу вверх. Это важно для удаления пустых каталогов, так как вы должны удалить подкаталоги перед удалением родительского.

Затем он пытается удалить список каталогов (в обратном порядке сортировки), используя RD команда. Если каталог не пуст, он переходит к следующему каталогу и так далее. В 2> NULL команда гарантирует, что «каталог не пустой» выходной текст подавляется.

Единственный недостаток описанного выше метода заключается в том, что он бесполезен, если вы хотите найти пустые папки, не удаляя их. Если вы хотите найти список пустых папок, используйте командную строку в абзаце ниже или используйте любой другой метод, описанный в этой статье.

Найдите пустые папки, но не удаляйте

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

для / r 'D:  uploads  2019' / d% F в (.) do @dir / b '% F' | findstr '^'> nul || эхо% ~ fF

Он показывает вам вывод, содержащий список пустых каталогов.

список пустых папок - командная строка

Допустим, у вас есть пустые вложенные папки, например:

C:  1 └───2 └───3 └───4

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


3. Найдите и удалите пустые папки с помощью Robocopy.

Robocopy - это мощный встроенный инструмент для копирования файлов с множеством дополнительных функций. Мы рассмотрели Robocopy в статье Сравните содержимое двух папок в Windows .

Предположим, у вас есть папка с именем легковые автомобили , который содержит несколько подпапок, некоторые из которых пусты. Мы собираемся удалить пустые с помощью Robocopy.

значок рукиВ уловка здесь используется команда перемещения Robocopy, передавая один и тот же путь к папке как для «источника», так и для «места назначения».

  1. Откройте окно командной строки.
  2. Введите следующую команду и нажмите ENTER:
    robocopy 'd:  автомобильные ставки  cars' 'd:  автомобильные ставки  cars' / S / move

    В самое важное здесь следует отметить, что источник и пункт назначения пути (намеренно) одинаковы. В / S Параметр указывает Robocopy не перемещать пустые папки в «целевой» путь. Поскольку мы упоминали одинаковые пути для источника и назначения, Robocopy удалит пустые папки из-за / S переключатель.

    robocopy удалить пустые папки

Пустые папки в выбранном пути очищены.

Хотите найти пустые папки, но не удалять их?

Вы можете использовать / Л (только для списка) аргумент командной строки с помощью Robocopy, чтобы он выполнял только пробный прогон вместо выполнения фактической операции копирования / перемещения.

/ Л :: Только список - не копировать, не ставить отметку о времени и не удалять файлы.
/ШАГ :: ПЕРЕМЕСТИТЬ файлы И каталоги (удалить из источника после копирования).
/ S :: копировать подкаталоги, но не пустые.

robocopy удаляет пустые папки - список -dryrun

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

Давайте проверим эту команду на практике!

Мой %ДАННЫЕ ПРИЛОЖЕНИЯ% папка заполнена пустыми папками, добавленными устаревшими программами.

содержимое перемещаемой папки appdata

Перед уборкой Appdata Роуминг В папке было 681 папка, как видно из свойств папки.
удалить пустые папки - до

Я открыл командную строку и выполнил следующую команду:

robocopy '% appdata%' '% appdata%' / S / MOVE

Примечание. Переменная среды% appdata% преобразуется в C: Users {имя пользователя} AppData Roaming папка. Вы можете использовать полный путь к папке или эквивалентную переменную среды с помощью Robocopy. Либо это нормально.

robocopy удалить пустые папки - appdata roaming

Он успешно удален 94 пустые папки в моем %ДАННЫЕ ПРИЛОЖЕНИЯ% папка и подпапки.

удалить пустые папки - после

Примечание редактора: В выводе командной строки под разделом статистики появилась следующая ошибка:

«ОШИБКА 32 (0x00000020) Удаление исходного каталога C: Users ramesh AppData Roaming
Процесс не может получить доступ к файлу, потому что он используется другим процессом ».

robocopy удалить пустые папки - ошибка

Поскольку мы проинструктировали Robocopy переместить ( /ШАГ ) каталог% APPDATA%, инструмент пытался очистить «исходную» папку после «перемещения» ее в место назначения. Не может, поскольку% APPDATA% - это особая папка. Ошибка не возникает, если путь к каталогу не является специальной папкой. Поскольку все шло хорошо, я просто проигнорировал (тривиальную) ошибку.


4. Найдите и удалите пустые папки с помощью PowerShell.

Следующая командная строка PowerShell рекурсивно удаляет пустые папки, расположенные в указанной базовой папке.

  1. Запустите PowerShell и введите следующую команду:
    (gci 'folderpath' -r |? {$ _. PSIsContainer -eq $ True}) | ? {$ _. GetFileSystemInfos (). Count -eq 0} | Убрать предмет

    Замените «путь к папке» на местоположение базовой папки. Например, я указываю Роуминг папка здесь:

    (gci 'C:  Users  ramesh  AppData  Roaming' -r |? {$ _. PSIsContainer -eq $ True}) | ? {$ _. GetFileSystemInfos (). Count -eq 0} | Убрать предмет

    PowerShell рекурсивно удаляет пустые папки

    Это удаляет все пустые подпапки в моем %данные приложения% папка рекурсивно и не показывает никаких результатов, если не обнаруживает ошибок.

Обратите внимание, что приведенная выше команда PowerShell очищает только последний уровень пустой вложенной папки. Например, предположим, что у вас есть пустые вложенные папки вроде этой:

C:  1 └───2 └───3 └───4

Выполнение указанной выше команды очищает самую глубокую пустую папку → 4 . Повторный запуск скрипта очистит другой уровень вложенной папки ( 3 ), и так далее.

Вы можете использовать сценарий PowerShell по адресу Svendsen Tech PowerShell вики работать с вложенными папками.

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

Найдите пустые папки, но не хотите их удалять?

Хотите получить список пустых папок, но не хотите их удалять? Вместо этого используйте этот пример командной строки:

(gci 'C:  Users  ramesh  AppData  Roaming' -r |? {$ _. PSIsContainer -eq $ True}) | ? {$ _. GetFileSystemInfos (). Count -eq 0} | выберите FullName | Out-GridView

PowerShell рекурсивно удаляет пустые папки

Команда выводит список пустых папок с полными путями к элементу управления представлением сетки.

PowerShell найти список пустых папок в виде сетки вывода

Наконечник: В виде сетки вы можете выделить все и скопировать выделение, нажав Ctrl + C

Перед запуском команды удаления папок рекомендуется предварительно просмотреть список.


5. Найдите и удалите пустые папки с помощью сценариев Windows.

Сотрудник Microsoft Джереми Джеймсон написал VBScript, рекурсивно удаляющий пустые папки. Я добавил в скрипт больше строк, чтобы принудительно удалять пустые каталоги, доступные только для чтения, выводить совокупный список пустых папок. Он также выводит список пустых папок, которые не удалось удалить, и соответствующее описание ошибки.

Сценарий может удалять вложенные пустые каталоги в подпапках.

 'Рекурсивно удаляет пустые папки в Windows' https://www.winhelponline.com/blog/find-and-delete-empty-folders-windows/ 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, sFolderPath Dim iCnt iCnt = 0 DeleteEmptyFolders objFolder Sub DeleteEmptyFolders (папка) Dim subfolders On Error Resume Next 'Пропускать ошибки при доступе к Junctions и т. Д. 0 Если folder.SubFolders.Count = 0 И folder.Files.Count = 0 Тогда sFolderPath = folder.Path При ошибке Возобновить Далее fso.DeleteFolder folder.Path, True Если Err.number 0 Тогда sDelErr = sDelErr & Err.number & ' : '& Err.description & _ vbCrLf & sFolderPath & vbCrLf & vbCrLf Else sDelList = sDelList & vbCrLf & sFolderPath iCnt = iCnt + 1 End If On Error Goto 0 End If End Sub If sDelList = '' And sDelErr = '' Then WScript.Echo 'Пустые папки не найдены в' & _ '' '' & strPath & '' '' & 'tree' WScript.Quit End If If sDelList '' then sDelList = 'Список удаленных пустых папок' & vbCrLf _ & String (38, '-') & vbCrLf & sDelList & vbCrLf & _ vbCrLf & 'Итого: Папки '& iCnt &' удалены. Если sDelErr '', то sDelErr = 'Эти папки не могут быть удалены' & _ vbCrLf & String (45, '-') & vbCrLf & sDelErr WScript.Echo sDelList & vbCrLf & vbCrLf & sDelErr 

При желании вы можете соответствующим образом переименовать файл скрипта, например delempty.vbs , и переместите его в C: Windows папка.

Вы можете запустить сценарий двумя способами:

через командную строку, запустив:

cscript.exe delempty.vbs 'путь_папки'

найти и удалить пустые папки

через графический интерфейс, запустив:

wscript.exe delempty.vbs 'путь_папки'

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

Вы можете создать ярлык для скрипта в ваша папка SendTo и назови это Удалить пустые папки .

удалить пустые папки

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

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

найти и удалить пустые папки - vbscript


6. Найдите и удалите пустые папки с помощью DelEmpty.exe.

DelEmpty.exe - это консольный инструмент от IntelliAdmin, который может рекурсивно удалять пустые каталоги. Эта программа также может быстро удалить пустой 0-байтовые файлы рекурсивно.

Ниже приводится синтаксис командной строки для программы:

ПАРАМЕТРЫ DelEmpty.exe [ПУТЬ]
Аргумент Описание
-f Удалить пустые (0-байтовые) файлы
-d Удалить пустые каталоги
-v Подробный режим
-c Режим подтверждения (показывает, что было удалено)
-s Включать подкаталоги (обходить подпапки)
-l Список того, что будет удалено ( не будет удалять )
-Y Удалить без запроса (да / нет)

Пример 1: Чтобы список пустые папки в каталоге Mozilla в AppData, я использовал следующую командную строку:

DelEmpty.exe '% AppData%  Mozilla' -d -c -s -y -l

Приведенная выше команда показывает список пустых папок, но не удаляет их, так как -l ( только список ) используется переключатель.

Для имен папок, содержащих пробелы - например, Mozilla Firefox , убедитесь, что путь заключен в двойные кавычки.

Пример 2: Чтобы Удалить пустые папки под Каталог Mozilla под %Данные приложения% , Я запускаю ту же командную строку, но без -l переключатель:

DelEmpty.exe '% AppData%  Mozilla' -d -c -s -y

рекурсивно удалять пустые каталоги

Программа просматривает все подпапки и удаляет пустые папки. Вложенные пустые папки также удаляются. Например, если вы хотели удалить пустые каталоги из этой структуры:

C:  Folder1  Folder2  EmptyFolder1 C:  Folder1  Folder2  EmptyFolder2

После EmptyFolder1 и EmptyFolder2 папки удаляются, папка 2 также пуста - и она также будет удалена. Также, DelEmpty.exe также может удалять папки с юникодом / иностранными символами - например, 蜍 穂

Если вам известны другие способы удаления пустых папок в Windows, сообщите об этом в разделе комментариев ниже.


Одна небольшая просьба: если вам понравился этот пост, поделитесь им?

Одна «крошечная» публикация от вас серьезно помогла бы росту этого блога. Несколько отличных предложений:
  • Приколи это!
  • Поделитесь этим в своем любимом блоге + Facebook, Reddit
  • Напишите об этом в Твиттере!
Так что большое спасибо за вашу поддержку, мой читатель. Это займет не более 10 секунд вашего времени. Кнопки «Поделиться» находятся прямо внизу. :)