Как проще всего получить список пустых папок под Win 2000/XP?
find here -type d -exec rmdir {} \;
---
...Я работаю антинаучным аферистом...
find . -type d -empty
Совсем забыл про ось - винда 2000/хр.
Надо поставить cygwin.
быстрее VBscript написать
Особенно ключей /A, /B, /S.
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."
А вот и не надо. Ключевое слово - UnxUtils.
dir /ad /b /s > f1 - печатает только директории
dir /a /b /s > f2 - печатает всё
fc f1 f2 - может, поможет...
Он ведь у меня уже год как стоит
Только я им не разу не пользовался - вот и повод будет
Всем спасибо - пойду просветляться
Чтение dir/? до просветления.Ну почитал я dir/?, но просветления не получил
Особенно ключей /A, /B, /S.
Точнее понял, что только с ее помощью мою задачу решить нельзя
Да и вообще шел винды для этого плохо подходит (в смысле, что написать можно, но так просто, как в х-ах не получится).
Так что стоит думать прежде чем бросаться такими утверждениями.
Можно конечно попробовать, но руками парсить результат труда этих команд как-то не хочется
Только подробно разобраться пока не получилась - man глючит
Пишет на "man <цифра>", что страница не найдена, а на "man find" такое:
/usr/bin/tbl: not foundНо я вроде фак по этому делу накопал - дома попробую разобраться...
/usr/bin/nroff: not found
/usr/bin/less: not found
Error executing formatting or display command.
System command (cd /usr/man && (echo ".pl 1100i"; /usr/bin/cat '/usr/man/man1/find.1'; echo; echo ".pl \n(nlu+10") | /usr/bin/tbl | /usr/bin/nroff -c -mandoc | /usr/bin/less -isrR) exited with status 32512.
No manual entry for find
В FAQ есть ссылки где читать маны.
Ты про
http://www.freebsd.org/cgi/man.cgi. Там ты можешь почитать про find под FreeBSD и под Linux. Конечно, в cygwin может быть какие-то опции отличаются. Но еще в FAQ есть ссылка на SuSv3, ты можешь почитать про find там. И пользоваться только опциями, соответствующими SuS.
Про
Спасибо, буду копать
Блин! Я думал, что это-то очевидно.
Да, это виндец.
Раньше (в ДОС) для вспомогательных вещей существовал BASICA/QBASIC.
Что-то такое.
dir /ad/s/b | sed "s/^/rmdir /" > %TEMP%\tempfile.bat
call %TEMP%\tempfile.bat
То, что делает sed, пришлось бы написать на васике.
---
...Я работаю антинаучным аферистом...
Прочитать ещё "rmdir /?". Для полного просветления.Ну на, почитай:
Удаление каталога.Где здесь то, про что я спрашивал?
RMDIR [/S] [/Q] [диск:]путь
RD [/S] [/Q] [диск:]путь
/S Удаление дерева каталогов, т. е. не только указанного каталога,
но и всех содержащихся в нем файлов и подкаталогов.
/Q Отключение запроса подтверждения при удалении дерева каталогов
с помощью ключа /S.
Блин! Я думал, что это-то очевидно.Очевидно что? Что кто-то воспользовавшись твоей пространной подсказкой прорюхает весь хелп и сам себе все напишет?
Да, это виндец.Блин!
Раньше (в ДОС) для вспомогательных вещей существовал BASICA/QBASIC.
Да и самого доса хватит - я про это написал - начать с "help for"...
Только вот вопрос был несколько другой - "Как ПРОЩЕ ВСЕГО...".
что делает sedНе знаю, что он делает, но консоль вин хр такой команды не знает
Тебе удалить пустые подкаталоги надо?
Попробуй командой RMDIR удалить непустой каталог.
Об успехах доложишь.
sed брать их UnxUtils.
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."
странно советовать виндовознику dir | sed, потому что у него нет find. Если нет find, значит и sed нет. Т.к. они идут в одних и тех же пакетах.
Это у кого это нет find? Find был ещё в MS-DOS. Собственно chkdsk /v | find file - это было что-то типа whereis file.
не был. Это была внешняя команда, не входившая в стандартный дистр 6.22
sed --- отдельно.
Что-то не так?
Он может взять любой доступный ему текстовый препроцессор.
Например, http://www.ugcs.caltech.edu/gema/
Или отрыть (написать) заменитель xargs сам.
---
...Я работаю антинаучным аферистом...
---
...Я работаю антинаучным аферистом...
Тебе список-то зачем?Посмотреть на него, возможно, отредактировать, а потом удалить соотв папки.
Попробуй командой RMDIR удалить непустой каталог.Попробовал - действительно, это вариант.
Но это все таки несколько нестандартное использование этой команды - можно было и намекнуть.
dir /ad/s/b | sed "s/^/rmdir /" > %TEMP%\tempfile.batИ без sed-а там делать видимо нечего - ну зачем мне файл, полный строк
Папка не пуста.
sed брать их UnxUtils.Об этом мне тоже полагалось догадываться?
"удалить пустой каталог."
RMDIR(1) FreeBSD General Commands Manual RMDIR(1)
NAME
rmdir -- remove directories
SYNOPSIS
rmdir [-pv] directory ...
DESCRIPTION
The rmdir utility removes the directory entry specified by each directory
argument, provided it is empty.
Получаешь список, правишь его, далее:
Если захочешь подавлять вывод ошибок, можешь взять
sed -e "s/^/rmdir /" list > %TEMP%\tempfile.bat
call tempfile.bat
соответствующую приблуду из микрософтовых сей.
После всего этого, если устанешь, можешь подумать о том,
насколько проще делать всё это в униксах.
---
...Я работаю антинаучным аферистом...
То есть я правильно понимаю, что мне надо поставить UnxUtils и тогда все это заработает?
Возможно, ты путаешь с ff (findfile из нортоновских утилит). Я про find в смысле *nix find (или grep? т. е. надо найти нужное слово в данном потоке.
Безразлично, каким путём ты вставишь в начале каждой строки
команду rmdir. Можешь сделать это руками.
Но лучше всего --- без сомнения --- поставить UnxUtils.
С find, xargs, sed.
---
...Я работаю антинаучным аферистом...
Давно бы уже сделал это и ввёл find с теми аргументами, что я сказал в самом начале.
Я изучаю альтернативные варианты.
Но пожалуй уже хватит.
Всем спасибо.
for /f "tokens=*" %%d in ('dir /b /s /ad') do rd "%%d" 2>nul
Я был прав насчет фора, но не думал, что все так просто
Большое спасибо
Наслаждацца результатом
Оставить комментарий
durka82
Чтобы потом их удалить...