Удалить все файлы в папке cmd

Обновлено: 20.11.2024

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

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

Почему Windows требует времени для удаления больших папок?

Когда вы удаляете огромные папки в Windows, вы заметите, что процесс занимает довольно много времени. Это противоположность быстрому.

Я держу папки резервных копий gHacks локально на жестком диске, и размер этих папок приближается к 30 ГБ, в них содержится более 140 000 файлов и 350 папок.

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

Затем, когда происходит фактическое удаление, Windows анализирует процесс и публикует обновления в окне операций с файлами.

Удаление большой папки (например, размером более 10 ГБ) с жесткого диска с помощью проводника на устройствах Windows может занять десять-двадцать минут или даже больше.

Быстрое удаление больших папок в Windows с помощью CMD

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

Мэтт Пильц, написавший об этом еще в 2015 году, отметил сокращение времени с 11 минут до 29 секунд, благодаря чему работа в командной строке стала более чем в 20 раз быстрее, чем в проводнике.

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

Пользователям требуются две команды: Del для удаления файлов и Rmdir для удаления каталогов.

Вот пошаговый процесс удаления больших папок с помощью CMD:

  1. Нажмите клавишу Windows, введите cmd.exe и выберите результат, чтобы загрузить командную строку.
  2. Перейдите к папке, которую вы хотите удалить (со всеми ее файлами и подпапками). Используйте путь cd, например. cd o:\backups\test\ для этого.
  3. Команда DEL / F / Q / S * . * > NUL удаляет все файлы в этой структуре папок и опускает вывод, что еще больше улучшает процесс.
  4. Используйте cd.. для последующего перехода к родительской папке.
  5. Выполните команду RMDIR / Q / S имя_папки, чтобы удалить папку и все ее подпапки.

Вот описание каждой из использованных выше команд.

DEL/F/Q/S*. * > НУЛЕВОЕ

  • /F -- принудительно удаляет файлы, доступные только для чтения.
  • /Q -- включает тихий режим. Вас не спрашивают, можно ли удалять файлы (если вы этого не сделаете, вам будет предложено указать любой файл в папке, что может занять много времени и, следовательно, привести к обратным результатам).
  • /S -- запускает команду для всех файлов в любой папке в выбранной структуре.
  • *.* -- удалить все файлы.
  • > NUL -- отключает консольный вывод. Это еще больше улучшит процесс, сократив примерно четверть времени обработки консольной команды.

RMDIR / Q / S имя папки

  • /Q — тихий режим, подтверждение удаления папок не запрашивается.
  • /S -- выполнить операцию для всех папок по выбранному пути.
  • имя_папки -- абсолютный путь или относительное имя папки, например o:/backup/test1 или test1

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

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

Для этого первое, что вам нужно сделать, это создать пакетный файл. Создайте новый текстовый документ в Windows и вставьте в него следующие строки кода.

@ECHO OFF
ECHO Удалить папку: %CD%?
PAUSE
SET FOLDER=%CD%
CD /
DEL /F/Q/S "%FOLDER%" > NUL
RMDIR /Q/S "% ПАПКА%"
ВЫХОД

После этого сохраните файл как delete.bat. Убедитесь, что он имеет расширение .bat, а не расширение .txt. Вы можете сделать это, выбрав Тип файла «Все файлы».

Пакетный файл поставляется с запросом безопасности. Это дает вам возможность остановить процесс; важно, если вы случайно выбрали пункт контекстного меню. Вы можете использовать CTRL-C или щелкнуть x в окне, чтобы остановить процесс. Если вы нажмете любую другую клавишу, все папки и файлы будут удалены без возможности остановить процесс.

Вам необходимо добавить пакетный файл в папку, которая является переменной среды PATH. Хотя вы можете создать свою собственную переменную, вы также можете переместить ее в папку, которая уже поддерживается; например: C:\Windows. Другими словами, вам нужно поместить этот .bat-файл в папку C:\Windows, чтобы реестр Windows мог легко получить к нему доступ.

Выполните следующие действия, чтобы добавить новый пакетный файл для быстрого удаления папок в контекстное меню проводника Windows. Это можно выполнить во всех основных версиях Windows, включая Windows XP, Windows 7 и Windows 10.

  1. Нажмите клавишу Windows, введите regedit.exe и нажмите клавишу Enter, чтобы открыть редактор реестра Windows.
  2. Подтвердите запрос UAC.
  3. Перейдите в HKEY_CLASSES_ROOT\Directory\shell\
  4. Нажмите правой кнопкой мыши на Shell и выберите "Создать" > "Ключ".
  5. Назовите ключ быстрого удаления
  6. Нажмите правой кнопкой мыши на "Быстрое удаление" и выберите "Создать" > "Ключ".
  7. Назовите ключевую команду.
  8. Дважды щелкните клавишу команды по умолчанию.
  9. Добавьте cmd /c "cd %1 && delete.bat" в качестве значения.

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

Удаляет один или несколько файлов. Эта команда выполняет те же действия, что и команда стирания.

Команду del также можно запустить из консоли восстановления Windows с другими параметрами. Дополнительные сведения см. в разделе Среда восстановления Windows (WinRE).

Если вы используете del для удаления файла с диска, вы не сможете его восстановить.

Синтаксис

Параметры

  • r Файлы только для чтения
  • h Скрытые файлы
  • i Файлы, не проиндексированные по содержимому
  • Системные файлы
  • a Файлы готовы к архивированию
  • l Точки повторной обработки
  • – используется как префикс, означающий "не"

Примечания

Если вы используете команду del /p, вы увидите следующее сообщение:

ИмяФайла, Удалить (Да/Нет)?

Чтобы подтвердить удаление, нажмите Y. Чтобы отменить удаление и отобразить имя следующего файла (если вы указали группу файлов), нажмите N. Чтобы остановить команду del, нажмите CTRL+C.

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

Если вы укажете в параметре конкретные папки, все включенные файлы также будут удалены. Например, если вы хотите удалить все файлы в папке \work, введите:

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

Команда del отображает следующее приглашение:

Вы уверены (да/нет)?

Чтобы удалить все файлы в текущем каталоге, нажмите Y, а затем нажмите ENTER. Чтобы отменить удаление, нажмите N, а затем нажмите ENTER.

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

Примеры

Чтобы удалить все файлы в папке Test на диске C, введите одно из следующих действий:

Чтобы удалить все файлы с расширением имени файла .bat из текущего каталога, введите:

Я хочу удалить все файлы и подпапки в пакетном файле в Windows 7 и сохранить верхнюю папку. В основном очистка папки. Какова инструкция командной строки для этого?

Не придираться, но вы ищете, как это сделать "из командной строки", а не из "DOS". Подсистемы DOS не было со времен Win ME.

@MarkM: Ну, ntvdm существует/был, но по мере того, как 64-разрядные системы завоевывают долю рынка, он становится все более неуместным.

18 ответов 18

Вы можете сделать это, используя del и флаг /S (чтобы удалить все файлы из всех подкаталогов):

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

Лучшее решение: например. я хочу удалить все файлы и подкаталоги родительского каталога, скажем, "C:\Users\Desktop\Новая папка\". Самый простой способ — создать пакетный файл из трех команд ниже.

cd C:\Users\Desktop\Новая папка\

del * /S /Q

rmdir /S /Q "C:\Users\Desktop\ Новая папка\"

Здесь сначала он очистит все файлы во всех подкаталогах, а затем очистит все пустые подкаталоги. Поскольку текущий рабочий каталог является родительским каталогом, то есть "\Новая папка", команда rmdir не может удалить этот каталог самостоятельно.

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

Нет. На самом деле это работает при полной очистке «Новой папки» без удаления самой папки. Единственная проблема заключается в том, что он выдает незначительное предупреждение, когда ОС не может удалить родительскую папку. Кроме того, команда del избыточна, если у вас нет большой папки, в этом случае она может быть быстрее. Вы можете просто изменить его как таковое (извините за отсутствие разрывов строк в комментариях): set FOLDER="%userprofile%\Desktop\New folder" cd %FOLDER% rmdir /S /Q %FOLDER%\ >nul 2>&1

Очень опасно. Если кто-то пойдет дальше и удалит/переименует `C:\Users\Desktop\New folder`, самая первая строка с компакт-диском выйдет из строя, и ваш командный файл благополучно удалит все в текущем (по умолчанию) каталоге. Который вполне может оказаться вашим рабочим каталогом или C:\Windows\System32

Перейти к родительскому каталогу:

Удалить вложенные папки:

Согласовано с вышеизложенным - это копия предыдущих ответов, замененная командами, синонимичными тем, которые они заменяют. pushd не добавляет сюда ничего, чего уже не делает cd.

это единственный, который я смог использовать до сих пор, который работал именно для того, о чем спрашивал спрашивающий, все остальные просто удаляли все файлы. Конечно, rmdir /s path-to-folder удалит папку со всем содержимым в ней, но спрашивающий хотел знать, как удалить все в рабочем каталоге.

Этот ответ сработал лучше всего для меня. Со всеми остальными ответами он не удалял непустые каталоги при использовании / Q и всегда запрашивал подтверждение, если не использовал / Q.

Не забудьте использовать кавычки, а для /q /s он удалит все репозитории без запроса.

Вопрос был следующим: "Я хочу удалить все файлы и подпапки в пакетном файле в Windows 7 и сохранить верхнюю папку".

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

Однако это значительно быстрее, особенно когда в вашей структуре много подпапок, чтобы использовать del перед rmdir, например:

Первый вариант выдает ошибку "Каталог не пуст". Первая команда во втором варианте удаляет всю папку. Держится не так, как я хотел. Вторая команда не нужна, если первая команда удалила всю папку.

Команда rmdir (оба одинаковы) удалит родительскую папку. Это не ответ на вопрос. Почему люди не читают?

Вы можете сделать это быстро и легко, поместив эти три инструкции в свой bat-файл:

user340956 был очень близок к решению, но вы знаете, что говорят о близком…

Чтобы было ясно, rd /s /qc:\foobar удаляет целевой каталог в дополнение к его содержимому, но вы не всегда хотите удалять сам каталог, иногда вы просто хотите удалить его содержимое и покинуть каталог в одиночестве. Команда deltree могла это сделать, но Micrsoft в своей безграничной «мудрости» удалила эту команду и не перенесла ее в Windows.

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

dt.bat (или dt.cmd для детей; что угодно, я старый, я использую .bat 🤷):

Вот как это работает:

  1. Он проверяет, был ли передан аргумент командной строки, печатает информацию об использовании и завершает работу, если нет.
  2. Он использует pushd для сохранения текущего каталога, а затем переключается на целевой каталог, перенаправляя любые ошибки на nul для более чистой работы командной строки (и более чистых журналов).
  3. Он проверяет, совпадает ли текущий каталог с целевым каталогом, выводит сообщение об ошибке и завершает работу, если это не так. Это позволяет избежать случайного удаления содержимого предыдущего каталога в случае сбоя команды pushd (например, передача недопустимого каталога, ошибка доступа и т. д.)
    • Эта проверка нечувствительна к регистру, поэтому она обычно безопасна в Windows, но не для любых файловых систем с учетом регистра, таких как те, которые используются системами *nix, даже под Windows.
    • Это не работает с короткими именами файлов (например, C:\Users\Bob Bobson\foobar не будет считаться таким же, как C:\Users\BobBob~1\foobar, даже если это действительно так). Использование некоротких имен файлов вызывает небольшое неудобство, но лучше перестраховаться, чем потом сожалеть, тем более что SFN не всегда надежны и не всегда предсказуемы (и могут даже быть полностью отключены).
  4. Затем он использует rd для удаления целевого каталога и всего его содержимого, перенаправляя любые ошибки (которых должно быть хотя бы одно для самого каталога) на nul . Некоторые примечания по этому поводу:
    • Поскольку целевой каталог является текущим каталогом, система имеет для него открытый дескриптор файла и, следовательно, не может фактически удалить его, поэтому он остается как есть, что является желаемым поведением.
    • Поскольку он не пытается удалить целевой каталог до тех пор, пока его содержимое не будет удалено, теперь он должен быть пустым (за исключением всего, что также имеет открытые дескрипторы файлов).
  5. Наконец, он использует popd для возврата в предыдущий текущий каталог и завершает скрипт.

(Если хотите, вы можете прокомментировать скрипт с приведенными выше описаниями, используя rem или :: .)

Крис Койсигава

Иногда проще сделать что-то с помощью командной строки.

В этом кратком руководстве мы рассмотрим, как открыть командную строку, некоторые основные команды и флаги, а также как удалить файлы и папки в командной строке.

Если вы уже знакомы с основными командами DOS, можете пропустить их.

Как открыть командную строку

Чтобы открыть командную строку, нажмите клавишу Windows и введите "cmd".

Затем нажмите "Запуск от имени администратора":

После этого вы увидите окно командной строки с правами администратора:

Скриншот окна командной строки

Если вы не можете открыть командную строку от имени администратора, не беспокойтесь. Вы можете открыть обычное окно командной строки, нажав «Открыть» вместо «Запуск от имени администратора».

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

Как удалить файлы с помощью команды del

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

Я подготовил каталог на рабочем столе под названием Test Folder. Вы можете использовать дерево команд /f, чтобы увидеть дерево всех вложенных файлов и папок:

Чтобы удалить файл, используйте следующую команду: del " " .

Например, чтобы удалить Test file.txt , просто запустите del "Test File.txt" .

Может появиться запрос на удаление файла. Если это так, введите "y" и нажмите Enter.

Примечание. Любые файлы, удаленные с помощью команды del, невозможно восстановить. Будьте очень осторожны, где и как вы используете эту команду.

После этого вы можете запустить дерево /f, чтобы подтвердить, что ваш файл был удален:

Кроме того, бонусный совет: в командной строке есть базовое автозаполнение. Таким образом, вы можете просто ввести del test , нажать клавишу табуляции, и командная строка изменит его на del "Test File.txt" .

Как принудительно удалить файлы с помощью команды del

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

Чтобы обойти это, используйте флаг /f для принудительного удаления файла. Например, del /f "Тестовый файл только для чтения.txt":

Как удалить папки с помощью команды rmdir

Чтобы удалить каталоги/папки, вам потребуется использовать команду rmdir или rd. Обе команды работают одинаково, но давайте остановимся на rmdir, так как он более выразительный.

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

Чтобы удалить каталог, просто используйте команду rmdir .

Примечание. Любые каталоги, удаленные с помощью команды rmdir, невозможно восстановить. Будьте очень осторожны, где и как вы используете эту команду.

В этом случае я хочу удалить каталог с именем Subfolder, поэтому я буду использовать команду rmdir Subfolder :

Но, если вы помните ранее, в подпапке есть файл с именем Nested Test File.

Вы можете перейти cd в каталог Subfolder и удалить файл, затем вернуться с помощью cd .. и снова запустить команду rmdir Subfolder, но это будет утомительно. И только представьте, если бы была куча других вложенных файлов и каталогов!

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

Как использовать флаг /s с rmdir

Чтобы удалить каталог, включая все вложенные файлы и подкаталоги, просто используйте флаг /s:

Возможно, появится запрос на удаление этого каталога. Если это так, просто введите "y" и нажмите Enter.

И все! Это все, что вам нужно знать, чтобы удалить файлы и папки в командной строке Windows.

Все эти команды должны работать в PowerShell, который представляет собой командную строку версии 2.0. Кроме того, в PowerShell есть множество классных псевдонимов, таких как ls и clear, которые должны подойти вам, если вы знакомы с командной строкой Mac/Linux.

Помогли ли вам эти команды? Есть ли другие команды, которые вы считаете полезными? В любом случае, дайте мне знать в Твиттере.

Крис Койсигава

Прочитайте больше сообщений этого автора.

Если вы дочитали до этого места, отправьте твит автору, чтобы показать, что вам не все равно. Твитнуть спасибо

Научитесь программировать бесплатно. Учебная программа freeCodeCamp с открытым исходным кодом помогла более чем 40 000 человек получить работу в качестве разработчиков. Начать

freeCodeCamp – это поддерживаемая донорами некоммерческая организация, освобожденная от налогов в соответствии со статьей 501(c)(3) (идентификационный номер федерального налогоплательщика США: 82-0779546)

Наша миссия: помочь людям научиться программировать бесплатно. Мы достигаем этого, создавая тысячи видеороликов, статей и интерактивных уроков по кодированию — все они находятся в свободном доступе. У нас также есть тысячи учебных групп freeCodeCamp по всему миру.

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

Читайте также: