Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление пустых каталогов через CMD

Ответить
Настройки темы
CMD/BAT - [решено] Удаление пустых каталогов через CMD

Пользователь


Сообщения: 90
Благодарности: 0

Профиль | Отправить PM | Цитировать


Помогите с написанием cmd-файла. ОС WIN 2000, XP.
В определённом каталоге есть файлы и вложенные папки, некоторые пусты, некоторые нет. Например каталог D:\1 содержит подкаталоги 2, 3, 4, 5, 6 и файлы 111.txt, 222.txt
Каталоги 3,5,7 пустые. CMD-файл должен удалить только каталоги 3,5,7.
Кол-во подкаталогов и их имена могут быть самые разные. Подкаталог может быть либо пустой либо содержать только файлы (не папки! т.е. глубина вложения папок фиксированная).

Отправлено: 17:37, 26-02-2010

 

Аватара для seriych

Старожил


Сообщения: 182
Благодарности: 42

Профиль | Отправить PM | Цитировать


toro,
Код: Выделить весь код
for /d %%i in ("D:\1\*") do rd /q %%i
вместо D:\1 вставляешь путь к твоей папке.
Использовано то, что глубина фиксирована и команда rd удаляет только пустые папки (папки с файлами и файлы не трогает), если ее использовать без ключа /s.
PS. Почему-то не удаляет каталог Новая папка.

-------
* Книгой можно не только стаканчик с лапшой накрывать. ©

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:46, 26-02-2010 | #2



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

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


Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1264
Благодарности: 1024

Профиль | Отправить PM | Цитировать


Цитата seriych:
Почему-то не удаляет каталог Новая папка »
seriych, надо так:
Код: Выделить весь код
for /d %%i in ("D:\1\*") do rd /q "%%i" 2>nul
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:39, 26-02-2010 | #3


Пользователь


Сообщения: 90
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата seriych:
команда rd удаляет только пустые папки (папки с файлами и файлы не трогает), если ее использовать без ключа /s »
Понятно. Честно говоря не знал. С rd ознакомился через /? а там про пустые каталоги не слова.

Цитата El Sanchez:
Код: Выделить весь код
for /d %%i in ("D:\1\*") do rd /q "%%i" 2>nul »
Если не сложно, объясните почему "%%i" в кавычках и почему 2>nul

Отправлено: 22:24, 26-02-2010 | #4


Аватара для seriych

Старожил


Сообщения: 182
Благодарности: 42

Профиль | Отправить PM | Цитировать


Цитата toro:
объясните почему "%%i" в кавычках и почему 2>nul »
%%i заменяется на полный путь. В нем могут быть пробелы, поэтому нужны кавычки.
Цитата Petya V4sechkin:
Конструкция 2>nul означает, что сообщения об ошибках (стандартный поток stderr) перенаправляются в nul (то есть, скрываются). Иначе команда Dir выдавала бы ошибку "Файл не найден" при отсутствии файлов.
Просто >nul перенаправляет обычные сообщения (stdout) в nul.
Комбинация 2>nul >nul - полностью "тихий" режим (убирает и stdout, и stderr). »

-------
* Книгой можно не только стаканчик с лапшой накрывать. ©

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:45, 26-02-2010 | #5


Пользователь


Сообщения: 90
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо. Всё предельно понятно.

-------
@ друг человека


Отправлено: 23:04, 01-03-2010 | #6


Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата toro:
for /d %%i in ("D:\1\*") do rd /q "%%i" 2>nul »
Хм... на сколько я понял, глубина определяется "D:\1\*". А если глубина не известна...?

Отправлено: 05:49, 20-02-2012 | #7


Аватара для Raf-9600

Старожил


Сообщения: 398
Благодарности: 21

Профиль | Отправить PM | Цитировать


Цитата jokerbleck:
А если глубина не известна...? »
Тогда вот так - http://www.cyberforum.ru/cmd-bat/thr...ml#post1831467

P.S.
Знаю что тема древняя, однако возможно ответ кому-то пригодиться.

Отправлено: 18:43, 26-01-2014 | #8


Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


----------------------------------------------------------------------------------------
CleanUpTempUserFolder.bat ---- run for Admin permitions
----------------------------------------------------------------------------------------
cd /D "C:\DOCUME~1" && del /s /ah desktop.ini
FOR /F %%i in ('dir /AD /B "C:\Documents and Settings"') do (
del /f /s /q "C:\DOCUME~1\%%i\LOCALS~1\Temp\*.*"
FOR /F "tokens=1,2* delims= " %%a in ('dir /B /S "C:\DOCUME~1\%%i\LOCALS~1\Temp"') do rd /q "%%a %%b"
FOR /F "tokens=1,2* delims= " %%a in ('dir /AD /B /S "C:\DOCUME~1\%%i\LOCALS~1\Tempor~1"') do rd /q "%%a %%b"
)

Отправлено: 01:56, 26-01-2016 | #9


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Удалит с проверяемой вниз при любой глубине все папки в которых нет файлов:
Код: Выделить весь код
@echo off
set "in=%Userprofile%\Desktop\papka"
for /r "%in%" %%i in (.) do dir /b "%%~i" | find /v "">nul || rd /s /q "%%~i"
exit
.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:32, 26-01-2016 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление пустых каталогов через CMD

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] Удаление пустых папок VBasic forsem Скриптовые языки администрирования Windows 4 13-05-2010 09:56
CMD/BAT - Удаление пустых каталогов rosalin Скриптовые языки администрирования Windows 1 12-05-2009 15:05
Служебные - [решено] Удаление файлов из меню Пуск через cmd Vdm17 Наборы обновлений для Windows XP/2003/Windows 7 19 24-02-2009 18:51
Удаление каталогов после инсталяции bravomcs Автоматическая установка приложений 5 21-08-2006 12:45
Удаление неудаляемых файлов и каталогов Kasper Хочу все знать 52 14-05-2004 00:29




 
Переход