Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/48: Рейтинг темы: голосов - 48, средняя оценка - 4.69
 Аватар для Tornament
71 / 71 / 2
Регистрация: 28.10.2010
Сообщений: 329

Удаление пустых папок в папке, не через xcopy

20.01.2011, 20:52. Показов 8985. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть папка "input" в ней куча папок...
Надо удалить все пустые папки... Не через "хсору" желательно...
Желательно удалить все файлы кроме "*.blp" Но не обяз, видел что то такое...

Будет время, помогите...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.01.2011, 20:52
Ответы с готовыми решениями:

Удаление пустых папок
Здравствуйте! Нигде не нашел как рекурсивно удалить все пустые папки в по указанному пути. Т.е. проходить по всем папкам и под-папкам...

Удаление не пустых папок
Суть программы: 1. Найти все Debug папки на диске D. 2. Запомнить адресса этих папок в list<wstring>. 3. Вывести в листбокс...

Удаление пустых папок и подпапок
Добрый день! Подскажите пожалуйста! Суть проблемы: у меня программа сортирует файлы. Выходными данными является папка в которой...

7
 Аватар для dn90
69 / 59 / 3
Регистрация: 07.09.2010
Сообщений: 87
21.01.2011, 13:04
Удаление пустых папок и файлов (исключая расширение blp)
Действует только в текущей директории
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@echo off
set q=blp
 
for /f "tokens=*" %%a in ('dir /b ".\*"') do call :Q "%%a"
exit
 
:Q
set x=%~x1
if defined x goto :W
if not defined x goto :E
goto :EOF
 
:W
if "%x%"==".bat" goto :EOF
if not "%x%"==".%q%" del /q %1
goto :EOF
 
:E
set n=0
for %%c in ("%~1\*") do if exist "%%c" set /a n+=1
if "%n%"=="0" rd /q %1
goto :EOF
Если надо удалить файлы не blp в поддерикториях
Windows Batch file
1
2
3
4
5
6
7
8
9
@echo off
set /p q=
for /f "tokens=*" %%a in ('dir /b /s ".\*"') do call :Q "%%a"
exit
:Q
set x=%~x1
if "%x%"==".bat" goto :EOF
if not "%x%"==".%q%" del /q %1
goto :EOF
1
 Аватар для Tornament
71 / 71 / 2
Регистрация: 28.10.2010
Сообщений: 329
21.01.2011, 14:02  [ТС]
К сожалению не работает...
Запускаем... Закрывается...
Вот текст работы, ечо он.
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
D:\BlooD\Giper_Soft\Коныертировка_и_открытие_не_стандартных_файлов\WoW_Tools\BLP
Converter_8_1\ss>set q=png
 
D:\BlooD\Giper_Soft\Коныертировка_и_открытие_не_стандартных_файлов\WoW_Tools\BLP
Converter_8_1\ss>for /F "tokens=*" %a in ('dir /b ".\*"') do call :Q "%a"
 
D:\BlooD\Giper_Soft\Коныертировка_и_открытие_не_стандартных_файлов\WoW_Tools\BLP
Converter_8_1\ss>call :Q "dddd.bat"
 
D:\BlooD\Giper_Soft\Коныертировка_и_открытие_не_стандартных_файлов\WoW_Tools\BLP
Converter_8_1\ss>set x=.bat
 
D:\BlooD\Giper_Soft\Коныертировка_и_открытие_не_стандартных_файлов\WoW_Tools\BLP
Converter_8_1\ss>if defined x goto :W
 
D:\BlooD\Giper_Soft\Коныертировка_и_открытие_не_стандартных_файлов\WoW_Tools\BLP
Converter_8_1\ss>if ".bat" == ".bat" goto :EOF
 
D:\BlooD\Giper_Soft\Коныертировка_и_открытие_не_стандартных_файлов\WoW_Tools\BLP
Converter_8_1\ss>call :Q "input"
 
D:\BlooD\Giper_Soft\Коныертировка_и_открытие_не_стандартных_файлов\WoW_Tools\BLP
Converter_8_1\ss>set x=
 
D:\BlooD\Giper_Soft\Коныертировка_и_открытие_не_стандартных_файлов\WoW_Tools\BLP
Converter_8_1\ss>if defined x goto :W
 
D:\BlooD\Giper_Soft\Коныертировка_и_открытие_не_стандартных_файлов\WoW_Tools\BLP
Converter_8_1\ss>if not defined x goto :E
 
D:\BlooD\Giper_Soft\Коныертировка_и_открытие_не_стандартных_файлов\WoW_Tools\BLP
Converter_8_1\ss>set n=0
 
D:\BlooD\Giper_Soft\Коныертировка_и_открытие_не_стандартных_файлов\WoW_Tools\BLP
Converter_8_1\ss>for %c in ("input\*") do if exist "%c" set /a n+=1
 
D:\BlooD\Giper_Soft\Коныертировка_и_открытие_не_стандартных_файлов\WoW_Tools\BLP
Converter_8_1\ss>if exist "input\fggg.txt" set /a n+=1
 
D:\BlooD\Giper_Soft\Коныертировка_и_открытие_не_стандартных_файлов\WoW_Tools\BLP
Converter_8_1\ss>if exist "input\Hair00_00.png" set /a n+=1
 
D:\BlooD\Giper_Soft\Коныертировка_и_открытие_не_стандартных_файлов\WoW_Tools\BLP
Converter_8_1\ss>if "2" == "0" rd /q "input"
 
D:\BlooD\Giper_Soft\Коныертировка_и_открытие_не_стандартных_файлов\WoW_Tools\BLP
Converter_8_1\ss>goto :EOF
 
D:\BlooD\Giper_Soft\Коныертировка_и_открытие_не_стандартных_файлов\WoW_Tools\BLP
Converter_8_1\ss>call :Q "ss.bat"
 
D:\BlooD\Giper_Soft\Коныертировка_и_открытие_не_стандартных_файлов\WoW_Tools\BLP
Converter_8_1\ss>set x=.bat
 
D:\BlooD\Giper_Soft\Коныертировка_и_открытие_не_стандартных_файлов\WoW_Tools\BLP
Converter_8_1\ss>if defined x goto :W
 
D:\BlooD\Giper_Soft\Коныертировка_и_открытие_не_стандартных_файлов\WoW_Tools\BLP
Converter_8_1\ss>if ".bat" == ".bat" goto :EOF
 
D:\BlooD\Giper_Soft\Коныертировка_и_открытие_не_стандартных_файлов\WoW_Tools\BLP
Converter_8_1\ss>call :Q "ss_starter.bat"
 
D:\BlooD\Giper_Soft\Коныертировка_и_открытие_не_стандартных_файлов\WoW_Tools\BLP
Converter_8_1\ss>set x=.bat
 
D:\BlooD\Giper_Soft\Коныертировка_и_открытие_не_стандартных_файлов\WoW_Tools\BLP
Converter_8_1\ss>if defined x goto :W
 
D:\BlooD\Giper_Soft\Коныертировка_и_открытие_не_стандартных_файлов\WoW_Tools\BLP
Converter_8_1\ss>if ".bat" == ".bat" goto :EOF
Папка с которой работаем называется "Input" Только файл не блп уже а пнг я изменил соответственно set q=png

Вод дерево папки
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
D:\BLOOD\GIPER_SOFT\КОНЫЕРТИРОВКА_И_ОТКРЫТИЕ_НЕ_СТАНДАРТНЫХ_ФАЙЛОВ\WOW_TOOLS\BLP
CONVERTER_8_1\SS\INPUT
/   fggg.txt
/    Hair00_00.png
/
/------Femal3
/       ssd.txt
/
/------Female
\------Male
        BrokenEyeGlowBlueGreen.png
        BrokenMaleFaceLower00_01.png
        hjhj.txt
Сам батник в папке "...ФАЙЛОВ\WOW_TOOLS\BLPCONVERTER_8_1\SS "

Спасибо за внимание.
0
 Аватар для dn90
69 / 59 / 3
Регистрация: 07.09.2010
Сообщений: 87
21.01.2011, 14:19
dddd.bat - пропускает
input - содержит 2 файла
ss.bat - пропускает
ss_starter.bat - пропускает

чтобы удалял bat, удали строку (if "%x%"==".bat" goto :EOF)
1
 Аватар для Tornament
71 / 71 / 2
Регистрация: 28.10.2010
Сообщений: 329
22.01.2011, 09:52  [ТС]
Сори вы меня не так поняли...
Есть папка, смотрите дерево папки "INPUT" (выше)
Прога должна удалить папки:
"Femal3" - Так как в ней есть файлы но нет *.png.
"Female" - Так как она пуста.
из папки "Input" файл fggg.txt и из папки "Male" файл "hjhj.txt"

То есть по другому будет так, сканит папку "INPUT", удаляет все файлы кроме *.png, потом сканирует снова, и удаляет все пустые под-папки естественно в том же "INPUT"
Вот... Спасибо за внимание...

И сори, как понять вот это ?
Bash
1
2
if defined x goto :W
if not defined x goto :E
if /? Писал, не дошло...
0
 Аватар для dn90
69 / 59 / 3
Регистрация: 07.09.2010
Сообщений: 87
22.01.2011, 12:19
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
@echo off
set file=png
set folder=INPUT\
 
for /f "tokens=*" %%a in ('dir /b ".\%folder%*"') do call :IF "%%a"
for /f "tokens=*" %%a in ('dir /b ".\%folder%*"') do call :IF "%%a"
exit
 
:IF
set x=%~x1
if defined x goto :FILE
if not defined x goto :FOLDER
goto :EOF
 
:FILE
if "%x%"==".bat" goto :EOF
if not "%x%"==".%file%" del /q %1
goto :EOF
 
:FOLDER
set n=0
for %%b in ("%folder%%~1\*") do call :FOLDER-FILE "%%b"
for %%c in ("%folder%%~1\*") do if exist "%%c" set /a n+=1
if "%n%"=="0" rd /q "%folder%%~1"
goto :EOF
 
:FOLDER-FILE
set x2=%~x1
if not "%x2%"==".%file%" del /q %1
goto :EOF
Объяснение:
@echo off
set file=png
set folder=INPUT\ проверяемая папка, можно ставить так folder1\folder2\...\

for /f "tokens=*" %%a in ('dir /b ".\%folder%*"') do call :IF "%%a" В проверяемой папке берет объект (файл, папку) и переходит в раздел :IF
for /f "tokens=*" %%a in ('dir /b ".\%folder%*"') do call :IF "%%a"
exit

:IF
set x=%~x1 от объекта оставляет расширение (см. for /?) если у объекта нет расширения, то х будет пустой
if defined x goto :FILE если х имеет значение, то переходит в :FILE
if not defined x goto :FOLDER если х пустой, то переходит в :FOLDER
goto :EOF

:FILE
if "%x%"==".bat" goto :EOF если у файла расширение bat, переходит обратно в call
if not "%x%"==".%file%" del /q %1 если у файла расширение не png - удаляется
goto :EOF

:FOLDER
set n=0 %n% - счетчик количества файлов
for %%b in ("%folder%%~1\*") do call :FOLDER-FILE "%%b" на подобие раздела :IF
for %%c in ("%folder%%~1\*") do if exist "%%c" set /a n+=1 при нахождении файла к %n% прибавляется 1
if "%n%"=="0" rd /q "%folder%%~1" если %n%=0 папка удаляется
goto :EOF переход в call

:FOLDER-FILE :FOLDER для обработки в папке INPUT; :FOLDER-FILE - для обработки в подпапке
set x2=%~x1
if not "%x2%"==".%file%" del /q %1
goto :EOF
1
 Аватар для Tornament
71 / 71 / 2
Регистрация: 28.10.2010
Сообщений: 329
23.01.2011, 08:57  [ТС]
Спасибо большое, работает, только не хочет удалять в папке "Инпут", файл "fggg.txt"
1 файл в коренной папке не беда )


Спасибо большое.
0
 Аватар для dn90
69 / 59 / 3
Регистрация: 07.09.2010
Сообщений: 87
23.01.2011, 09:44
недописал)) забыл в папке INPUT создать файлы))

в секции :FILE строку
Windows Batch file
1
if not "%x%"==".%file%" del /q %1
замени на
Windows Batch file
1
if not "%x%"==".%file%" del /q "%folder%%~1"
он файл искал в текущей директории а не в INPUT
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.01.2011, 09:44
Помогаю со студенческими работами здесь

Удаление только пустых папок
Всем привет! Есть папка, а в ней еще несколько папок, в которых еще куча под папок. Некоторые из из папок пустые. Подскажите скриптик,...

Удаление пустых папок и подпапок
Ищу код для выполнения такой функции: В папке программы (либо указанной) найти все пустые директории и поддиректории (с...

Удаление пустых файлов в папке
Как бы написать скрипт, который будет сканировать одну папку с файлами и удалять оттуда только пустые файлы (размер = 0)

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

Рекурсивное удаление пустых папок из заданной папки
Здравствуйте. Нужно удалить пустые папки из заданной папки со всем подпапками. Нашел этот код в интернете. Но он удалил только 1...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru