В командной строке Windows для удаления папок (каталогов) используется команда rmdir
. С помощью данной команды можно удалить одну или несколько папок в указанном каталоге в месте с ее содержимым (включая все файлы).
Синтаксис
rmdir [<drive>:] <path> [[/s] [/q]]
Параметры
Параметр | Описание |
---|---|
<drive>: | Указывает расположение и имя каталога, который требуется удалить. |
<path> | Путь является обязательным. Если включить обратную косую черту () в начале указанного пути, то путь начинается с корневого каталога (независимо от текущего каталога). |
/s | Удаляет дерево каталогов (указанный каталог и все его подкаталоги, включая все файлы). |
/q | Задает тихий режим. Не запрашивает подтверждение при удалении дерева каталогов. Параметр /q работает только в том случае, если также указан параметр /s . |
/? | Отображение справки в командной строке. |
При запуске в тихом режиме все дерево каталогов удаляется без подтверждения. Перед использованием параметра командной строки /q убедитесь, что важные файлы перемещаются или создаются резервные копии.
Команда rmdir
не сможет удалить каталог содержащий скрытые или системные файлы. При попытке появится следующее сообщение:
The directory is not empty (Каталог не пустой).
Используйте команду dir /a
, чтобы получить список всех файлов (включая скрытые и системные). Затем используйте команду attrib
с параметром -h
, чтобы удалить скрытые атрибуты файла, -s
, чтобы удалить атрибуты системного файла, или -h -s
, чтобы удалить как скрытые, так и системные атрибуты файлов. После удаления скрытых атрибутов и файлов можно удалить файлы.
Вы не можете использовать команду dir /a
для удаления текущего каталога. При попытке удалить текущий каталог появляется следующее сообщение об ошибке:
The process can’t access the file because it is being used by another process (Процесс не может получить доступ к файлу, поскольку он используется другим процессом).
Если появляется это сообщение об ошибке, необходимо выполнить переход в другой каталог (не в подкаталог текущего каталога), а затем повторить попытку.
Как удалить каталог в командной строке в Windows
Чтобы удалить каталог с именем MyDrectory в текущем каталоге, введите:
Также вы можете указать полный путь к удаляемой папке. Например, для того чтобы удалить папку в корне системного диска с:\ нужно выполнить:
rmdir c:\MyDirectory
Как удалить несколько каталогов включая их содержимое в Windows
Если нужно удалить сразу несколько каталогов включая их содержимое то есть все файлы которые находятся в этих каталогах. В этом примере удаляются каталоги и файлы в каталоге MyDirectory:
rmdir /s c:\MyDirectory
Как удалить каталог (папку) с ее содержимым рекурсивно без запроса для подтверждения в Windows
В этом примере удаляются каталог(папка) и все файлы находящиеся в каталоге MyDirectory без запроса подтверждения:
rmdir /s /q c:\MyDirectory
После того, как вы выполните эти шаги, каталог и ее содержимое будут удалены.
Параметр /s
удаляет каталог и егосодержимое в приведенной выше команде, но запрашивает у пользователя подтверждение. Параметр /q
игнорирует приглашение и рекурсивно удаляет каталог.
For the previous answer, I checked the current Microsoft documentation about commands it has, and it does NOT say clearly that the del command will delete only files.
The command you need to recursively delete a folder, and all files OR folders it contains is:
rmdir [name of the folder] /s /q
Please note the «/s» and «/q» arguments, which have the same meaning as for the del command, but they come AFTER the name of the folder! This is what the command documentation shows, as you may read here.
But there are more possible reasons for the recursive directory deletion failing! If you try to delete a directory that has system files or hidden files, the rmdir command will fail. To solve this problem, you need to do more work. To quote the documentation pointed above:
You can’t delete a directory that contains files, including hidden or system files. If you attempt to do so, the following message appears:
The directory is not empty
Use the dir /a command to list all files (including hidden and system files). Then use the attrib command with -h to remove hidden file attributes, -s to remove system file attributes, or -h -s to remove both hidden and system file attributes. After the hidden and file attributes have been removed, you can delete the files.
Рекомендации помогут Вам полностью удалить папку через командную строку. В статье про удаление файла из командной строки, использовалась команда DEL, которая предназначена именно для файлов. В случае с папками, применимы команды RD или RMDIR.
Для достижения цели, откройте cmd c привилегиями администратора. Введите RD /? и бегло ознакомьтесь с особенностями и параметрами команды. Здесь Вы увидите всего лишь 2 параметра:
- /s — при использовании этого префикса, удалится папка, а также все вложенные в нее элементы. Если Ваш каталог не пустой, и Вы не прописали это параметр, тогда у Вас ничего не выйдет.
- /Q — используется при удалении без подтверждения.
В общем виде конструкция выглядит таким образом:
RD или RMDIR /s/q “полный путь папки”
Примечание: при применении конструкции, каталог и его содержимое полностью удалится с компьютера и Вы не найдете его в корзине. Для безопасности сделайте резервную копию папки.
Удаление папки с подтверждением и без
У себя на компьютере я создал каталог с названием «cmd» и скопировал в него несколько объектов. Далее ввел в командную строку такую команду:
RD /s “c:\cmd”
Затем нажал Enter и клавишу Y, так как cmd сделала запрос на подтверждение удаления.
Проверив диск C, я не обнаружил каталога. Далее создал папку с именем «удалить» и также скопировал 5 файлов, но при вводе команды, убрал префикс /s. Получилось так:
RMDIR “c:\удалить”
После нажатия Enter, удаления не произошло, а в командной строке высветилось сообщение, что папка не пуста. Вывод, без параметра /s Вы сможете удалить только пустую папку, следовательно, использование без данного префикса практически бесполезно.
Если Вам лень вводить букву подтверждения (Y или N), тогда следующая конструкция для Вас. Выше упоминался префикс /q, именно он убирает надоедливый ввод букв (для доказательства смотрите скрин).
Вот и все, такими действиями Вы без проблем сможете удалить папку из командной строки, используя вовсе не сложный синтаксис. Со знаниями cmd ваши любые задумки превратятся в реальность, с которыми Вы даже выключите компьютер из командной строки и сделаете многое другое.
Вы можете пропустить чтение записи и оставить комментарий. Размещение ссылок запрещено.
I am making a batch script and part of the script is trying to remove a directory and all of its sub-directories. I am getting an intermittent error about a sub-directory not being empty. I read one article about indexing being the culprit. I disabled WSearch but I eventually got the error again. Here’s the command:
rmdir /S /Q "C:\<dir>\"
Rose
2,8024 gold badges28 silver badges42 bronze badges
asked Apr 8, 2014 at 21:07
1
I experienced the same issues as Harry Johnston has mentioned. rmdir /s /q
would complain that a directory was not empty even though /s
is meant to do the emptying for you! I think it’s a bug in Windows, personally.
My workaround is to del
everything in the directory before deleting the directory itself:
del /f /s /q mydir 1>nul
rmdir /s /q mydir
(The 1>nul
hides the standard output of del
because otherwise, it lists every single file it deletes.)
answered Sep 16, 2015 at 11:26
BoffinBrainBoffinBrain
6,3376 gold badges33 silver badges59 bronze badges
6
I’m familiar with this problem. The simplest workaround is to conditionally repeat the operation. I’ve never seen it fail twice in a row — unless there actually is an open file or a permissions issue, obviously!
rd /s /q c:\deleteme
if exist c:\deleteme rd /s /q c:\deleteme
answered Apr 8, 2014 at 22:47
Harry JohnstonHarry Johnston
35.7k6 gold badges68 silver badges159 bronze badges
6
I just encountered the same problem and it had to do with some files being lost or corrupted. To correct the issue, just run check disk:
chkdsk /F e:
This can be run from the search windows box or from a cmd prompt. The /F
fixes any issues it finds, like recovering the files. Once this finishes running, you can delete the files and folders like normal.
answered Feb 2, 2017 at 5:22
jrosejrose
5496 silver badges11 bronze badges
2
enter the Command Prompt as Admin and run
rmdir /s <FOLDER>
answered May 2, 2018 at 15:24
1
I had a similar problem, tried to delete an empty folder via windows explorer. Showed me the not empty error, so I thought I try it via admin cmd, but none of the answers here helped.
After I moved a file into the empty folder. I was able to delete the non empty folder
answered Apr 3, 2018 at 11:11
Grisu118Grisu118
3391 gold badge3 silver badges7 bronze badges
3
As @gfullam stated in a comment to @BoffinbraiN’s answer, the <dir>
you are deleting itself might not be the one which contains files: there might be subdirectories in <dir>
that get a «The directory is not empty» message and the only solution then would be to recursively iterate over the directories, manually deleting all their containing files… I ended up deciding to use a port of rm
from UNIX. rm.exe
comes with Git Bash, MinGW, Cygwin, GnuWin32 and others. You just need to have its parent directory in your PATH and then execute as you would in a UNIX system.
Batch script example:
set PATH=C:\cygwin64\bin;%PATH%
rm -rf "C:\<dir>"
answered Mar 31, 2016 at 14:04
GobeGobe
2,5691 gold badge25 silver badges24 bronze badges
Im my case i just moved the folder to root directory like so.
move <source directory> c:\
And then ran the command to remove the directory
rmdir c:\<moved directory> /s /q
answered Oct 11, 2015 at 10:05
Daniel BardeDaniel Barde
2,6135 gold badges31 silver badges40 bronze badges
3
I had «C:\Users\User Name\OneDrive\Fonts», which was mklink’ed ( /D ) to «C:\Windows\Fonts», and I got the same problem. In my case
cd «C:\Users\User Name\OneDrive»
rd /s Fonts
Y (to confirm the action)
helped me. I hope, that it helps you too ;D
answered Dec 8, 2018 at 22:23
1
What worked for me is the following. I appears like the RMDir command will issue “The directory is not empty” nearly all the time…
:Cleanup_Temporary_Files_and_Folders
Erase /F /S /Q C:\MyDir
RMDir /S /Q C:\MyDir
If Exist C:\MyDir GoTo Cleanup_Temporary_Files_and_Folders
Tamás Sengel
56.1k29 gold badges169 silver badges225 bronze badges
answered Jan 17, 2017 at 19:34
The reason rd /s
refuses to delete certain files is most likely due to READONLY file attributes on files in the directory.
The proper way to fix this, is to make sure you reset the attributes on all files first:
attrib -r %directory% /s /d
rd /s %directory%
There could be others such as hidden or system files, so if you want to play it safe:
attrib -h -r -s %directory% /s /d
rd /s %directory%
answered Apr 22, 2020 at 1:59
Peter HoegPeter Hoeg
9019 silver badges13 bronze badges
0
one liner:
if exist folder rmdir /Q /S folder
I’m using this in a NPM script like so (Javascript) :
//package.json
"scripts": {
"start": "parcel --no-cache",
"clean": "if exist dist rmdir /Q /S dist",
"deploy": "npm run clean && parcel build --no-source-maps && firebase deploy"
},
answered Nov 9, 2021 at 21:54
Open CMD as administrator
chkdsk c: /F /R
- Press the “Y” key if asked to check your disk the next time your system restarts.
Restart the machine. After that just delete the folder.
answered Mar 16, 2022 at 16:32
KR93KR93
1,12811 silver badges10 bronze badges
Windows sometimes is «broken by design», so you need to create an empty folder, and then mirror the «broken folder» with an «empty folder» with backup mode.
robocopy - cmd copy utility
/copyall - copies everything
/mir deletes item if there is no such item in source a.k.a mirrors source with
destination
/b works around premissions shenanigans
Create en empty dir like this:
mkdir empty
overwrite broken folder with empty like this:
robocopy /copyall /mir /b empty broken
and then delete that folder
rd broken /s
rd empty /s
If this does not help, try restarting in «recovery mode with command prompt» by holding shift when clicking restart and trying to run these command again in recovery mode
Paul Roub
36.3k27 gold badges84 silver badges93 bronze badges
answered Jun 1, 2020 at 19:23
1
I can think of the following possible causes:
- there are files or subdirectories which need higher permissions
- there are files in use, not only by WSearch, but maybe by your virus scanner or anything else
For 1.) you can try runas /user:Administrator
in order to get higher privileges or start the batch file as administrator via context menu. If that doesn’t help, maybe even the administrator doesn’t have the rights. Then you need to take over the ownership of the directory.
For 2.) download Process Explorer, click Find/Find handle or DLL...
or press Ctrl+F, type the name of the directory and find out who uses it. Close the application which uses the directory, if possible.
answered Apr 8, 2014 at 21:24
Thomas WellerThomas Weller
55.6k20 gold badges126 silver badges223 bronze badges
2
Similar to Harry Johnston’s answer, I loop until it works.
set dirPath=C:\temp\mytest
:removedir
if exist "%dirPath%" (
rd /s /q "%dirPath%"
goto removedir
)
answered May 1, 2017 at 21:46
BuvinJBuvinJ
10.3k5 gold badges83 silver badges96 bronze badges
Force delete the directory (if exists)
Delete.bat
set output_path="C:\Temp\MyFolder"
if exist %output_path% (
echo Deleting %output_path%
attrib -r /s /d %output_path%
rd /s /q %output_path%
)
answered Oct 6, 2021 at 9:07
Alper EbicogluAlper Ebicoglu
8,9741 gold badge51 silver badges55 bronze badges
I’ve fixed this before my making sure there wasn’t extra whitespace in the name of the directory I was deleting. This is more of a concern when I had the directory name contained within a variable that I was passing to RD
. If you’re specifying your directly in quotes then this isn’t helpful, but I hope that someone like me comes along with the same problem and sees this. RD /S /Q
can work, as I noticed the issue started happening when I changed something in my batch script.
answered Jun 19, 2022 at 7:07
Программистам часто приходится работать в консоли — например, чтобы запустить тестирование проекта, закоммитить новый код на Github или отредактировать документ в vim. Всё это происходит так часто, что все основные действия с файлами становится быстрее и привычнее выполнять в консоли. Рассказываем и показываем основные команды, которые помогут ускорить работу в терминале под OS Windows.
Для начала нужно установить терминал или запустить командную строку, встроенную в Windows — для этого нажмите Win+R
и введите cmd
. Терминал часто встречается и прямо в редакторах кода, например, в Visual Studio Code.
Чтобы ввести команду в консоль, нужно напечатать её и нажать клавишу Enter
.
Содержимое текущей папки — dir
Выводит список файлов и папок в текущей папке.
C:\content-server>dir
Том в устройстве C имеет метку SYSTEM
Серийный номер тома: 2C89-ED9D
Содержимое папки C:\content-server
06.10.2020 00:41 <DIR> .
06.10.2020 00:37 <DIR> .circleci
16.07.2020 16:04 268 .editorconfig
16.07.2020 16:04 10 .eslintignore
16.07.2020 16:04 482 .eslintrc
06.10.2020 00:37 <DIR> .github
16.07.2020 16:04 77 .gitignore
06.10.2020 00:41 <DIR> assets
06.10.2020 00:41 <DIR> gulp
16.07.2020 16:10 379 gulpfile.js
16.07.2020 16:10 296 320 package-lock.json
16.07.2020 16:10 751 package.json
16.07.2020 16:04 509 README.md
Открыть файл
Чтобы открыть файл в текущей папке, введите его полное имя с расширением. Например, blog.txt или setup.exe.
Перейти в другую папку — cd
Команда cd
без аргументов выводит название текущей папки.
Перейти в папку внутри текущего каталога:
C:\content-server>cd assets
C:\content-server\assets>
Перейти на одну папку вверх:
C:\content-server\assets>cd ..
C:\content-server>
Перейти в папку на другом диске:
c:\content-server>cd /d d:/
d:\>
Чтобы просто изменить диск, введите c:
или d:
.
Создать папку — mkdir или md
Создаём пустую папку code
внутри папки html
:
d:\html>mkdir coded:\html>dir
Содержимое папки d:\html
03.11.2020 19:23 <DIR> .
03.11.2020 19:23 <DIR> ..
03.11.2020 19:25 <DIR> code
0 файлов 0 байт
3 папок 253 389 438 976 байт свободно
Создаём несколько пустых вложенных папок — для этого записываем их через косую черту:
d:\html>mkdir css\js
d:\html>dir
Том в устройстве D имеет метку DATA
Серийный номер тома: 0000-0000
Содержимое папки d:\html
03.11.2020 19:23 <DIR> .
03.11.2020 19:23 <DIR> ..
03.11.2020 19:25 <DIR> code
03.11.2020 19:29 <DIR> css
Создаётся папка css
, внутри которой находится папка js
. Чтобы проверить это, используем команду tree
. Она показывает дерево папок.
Удалить папку — rmdir или rd
Чтобы удалить конкретную папку в текущей, введите команду rmdir
:
d:\html\css>rmdir js
При этом удалить можно только пустую папку. Если попытаться удалить папку, в которой что-то есть, увидим ошибку:
d:\html\css>d:\html>rmdir css
Папка не пуста.
Чтобы удалить дерево папок, используйте ключ /s
. Тогда командная строка запросит подтверждение перед тем, как удалить всё.
d:\html>rmdir css /s
css, вы уверены [Y(да)/N(нет)]? y
Показать дерево папок — tree
В любом момент мы можем увидеть структуру папок. Для этого используется команда tree
.
d:\html>tree
Структура папок тома DATA
Серийный номер тома: 0000-0000
D:.
├───code
└───css
└───js
Если вы хотите посмотреть содержимое всего диска, введите tree
в корне нужного диска. Получится красивая анимация, а если файлов много, то ещё и немного медитативная.
Удаление файла — del или erase
Команда для удаления одного или нескольких файлов.
d:\html>del blog.txt
Переименование файла — ren или rename
Последовательно вводим ren
, старое и новое имя файла.
d:\html>dir
Содержимое папки d:\html
03.11.2020 19:23 <DIR> .
03.11.2020 19:23 <DIR> ..
03.11.2020 19:59 0 blag.txt
d:\html>ren blag.txt blog.txt
d:\html>dir
Содержимое папки d:\html
03.11.2020 19:23 <DIR> .
03.11.2020 19:23 <DIR> ..
03.11.2020 19:59 0 blog.txt
Команды одной строкой
Очистить консоль — cls
.
Информация о системе — systeminfo
.
d:\html>systeminfo
Имя узла: DESKTOP-6MHURG5
Название ОС: Майкрософт Windows 10 Pro
Версия ОС: 10.0.20246 Н/Д построение 20246
Изготовитель ОС: Microsoft Corporation
Параметры ОС: Изолированная рабочая станция
Сборка ОС: Multiprocessor Free
Информация о сетевых настройках — ipconfig
.
d:\html>ipconfig
Настройка протокола IP для Windows
Адаптер Ethernet Ethernet 2:
Состояние среды. . . . . . . . : Среда передачи недоступна.
DNS-суффикс подключения . . . . . :
Список запущенных процессов — tasklist
.
c:\>tasklist
Имя образа PID Имя сессии № сеанса Память
========================= ======== ================ =========== ============
System Idle Process 0 Services 0 8 КБ
System 4 Services 0 2 688 КБ
Secure System 72 Services 0 23 332 КБ
…
Справка по командам — help
Команда help
без аргументов выводит список всех возможных команд. help
вместе с именем команды выведет справку по этой команде.
d:\html>help tree
Графическое представление структуры папок или пути.
TREE [диск:][путь] [/F] [/A]
/F Вывод имён файлов в каждой папке.
/A Использовать символы ASCII вместо символов национальных алфавитов.
В этой статье приведены не все команды и не все их возможности, но вы всегда можете воспользоваться командой help
и узнать о том, что ещё может командная строка.
👉🏻 Больше статей о фронтенде и работе в айти в телеграм-канале.
Подписаться
Материалы по теме
- 10 горячих клавиш VS Code, которые ускорят вашу работу
- Полезные команды для работы с Git
- Полезные команды для работы с Node. js
«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.
ТелеграмПодкастБесплатные учебники