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

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

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

Аватара для jentoso

Ветеран


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


Конфигурация

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


Помогите с удалением каталогов по следующим критериям:
1. Удаление папки у которой меняется имя состоящее из букв и цифр.
2. Удаление папок кроме определенной (либо определенных)
Эти обе задачи между собой не связаны. Просто решил не создовать несколько тем, а задать в одной.
Спасибо.

Отправлено: 21:02, 30-05-2009

 

Старожил


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

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


1. ПРимер имени хоть дайте. Не совсем понятно чего нужно.

2.

что-то вроде :
Код: Выделить весь код
for /d %%i in (*) do call :d %%i

:d

if not %1=="имя опредененной папки" rd /s /q %1

goto :eof

Отправлено: 23:36, 30-05-2009 | #2



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

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


Аватара для jentoso

Ветеран


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

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


Цитата mitiya:
1. ПРимер имени хоть дайте. Не совсем понятно чего нужно. »
Например с4р3р4е8у2вке. А надо это для того чтобы удалить папку которою оставляет установщик Net Framework 3.5 SP1

-------
Спасибо не пишут, а нажимают "Полезное сообщение"
Я.Диск | Я зарегистрировал никнейм JenTOSO


Отправлено: 09:33, 31-05-2009 | #3


Старожил


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

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


Я думаю единственный надежный способ ее идентифицировать, это по содержимому.
Т.е. там в папке должен быть хотя бы какой-то файл который точно идентифицирует эту папку как ту что оставляет Net Framework 3.5 SP1.

примерно так:

Код: Выделить весь код
for /d %%i in (*) do call :d %%i

:d

IF EXIST %1\имя_файла rd /s /q %1

goto :eof
код не проверял, просто принцип описал.

Отправлено: 12:40, 31-05-2009 | #4


Аватара для jentoso

Ветеран


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

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


на счет файлов в ней не помню, а вот папки с файлами в ней присутсвуют

-------
Спасибо не пишут, а нажимают "Полезное сообщение"
Я.Диск | Я зарегистрировал никнейм JenTOSO


Отправлено: 13:41, 31-05-2009 | #5


Аватара для jentoso

Ветеран


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

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


Цитата:
что-то вроде :

Код:
for /d %%i in (*) do call :d %%i

:d

if not %1=="имя опредененной папки" rd /s /q %1

goto :eof
немного не понятно с этим кодом, он в итоге удалает все с диска. Или вместо * надо указать путь(диск) откуда надо удалять?

-------
Спасибо не пишут, а нажимают "Полезное сообщение"
Я.Диск | Я зарегистрировал никнейм JenTOSO


Отправлено: 14:24, 10-06-2009 | #6


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


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

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


Цитата jentoso:
Помогите с удалением каталогов по следующим критериям:
1. Удаление папки у которой меняется имя состоящее из букв и цифр.
2. Удаление папок кроме определенной (либо определенных)
Эти обе задачи между собой не связаны. Просто решил не создовать несколько тем, а задать в одной.
Спасибо. »
Цитата jentoso:
А надо это для того чтобы удалить папку которою оставляет установщик Net Framework 3.5 SP1 »
пример как неверно сформулированная задача приводит к дурацкой реализации
Почему нельзя стереть по атрибуту времени? (созданный в последний час например?) Или провести dir /a:d /b /t:c /o:-d >datafile.txt с последующей установкой NET(обычно временный каталог организуется на диске с наибольшим свободным дисковым пространством) и проверкой наличия НОВОСОЗДАННОГО каталога в списке - религия не позволяет?
А указание OS вообще видимо не обязательно? А ведь многие конструкции отличаются
А реализация дурацкая в алгоритме может стоило бы учесть, что может быть список запрещённых к стиранию каталогов, а не один каталог? и реализовать через расширенный фор, если нужно именно так?
реализация исключений через файл со списком здесь http://forum.oszone.net/thread-106528-6.html

-------
Не преумножай сущностей


Последний раз редактировалось Vlad02, 10-06-2009 в 15:25. Причина: дополнение


Отправлено: 15:01, 10-06-2009 | #7


Аватара для jentoso

Ветеран


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

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


Vlad02, задача сформулирована так как она есть на самом деле.
Цитата Vlad02:
Почему нельзя стереть по атрибуту времени? (созданный в последний час например?) »
А вдруг за этот час была создана какая-нибудь нужная директория.
По поводу Религии вопрос вообще не уместен.
Цитата Vlad02:
А реализация дурацкая в алгоритме может стоило бы учесть, что может быть список запрещённых к стиранию каталогов, а не один каталог? и реализовать через расширенный фор, если нужно именно так? »
В этом нет потребности, но если бы описали то не было лишним.

-------
Спасибо не пишут, а нажимают "Полезное сообщение"
Я.Диск | Я зарегистрировал никнейм JenTOSO


Отправлено: 17:41, 10-06-2009 | #8


Googler


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

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


jentoso

1. К сожалению, неизвестна минимальная длина временного каталога, например, для 12:
Код: Выделить весь код
@Echo Off

Set $FLEN=12
Set $ROOT=C:

:LEN_LOOP
 Set /A $FLEN-=1
 Set $REG=%$REG%[0-9a-f]
 If %$FLEN% GTR 0 GoTo LEN_LOOP

For /F "Delims=" %%i In ('DIR /A:D/B "%$ROOT%\*"^|FindStr /XRC:"%$REG%*"') Do @Echo RD /S/Q "%$ROOT%\%%i"
2. $FILE - файл со списком исключений, $TEMP - временный файл
Код: Выделить весь код
@Echo Off

Set $ROOT=C:
Set $FILE=%~dpn0.lst
Set $TEMP=%~dpn0.tmp

DIR /B/A:D "%$ROOT%\*" >"%$TEMP%"
For /F "Delims=" %%i In ('FindStr /IVXG:"%$FILE%" "%$TEMP%"') Do @Echo RD /S/Q "%$ROOT%\%%i"
З.Ы. для отладки перед RD поставил @Echo, перед применением убрать

Последний раз редактировалось amel27, 12-06-2009 в 06:05. Причина: [a-z] -> [a-f]

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

Отправлено: 12:42, 11-06-2009 | #9


Аватара для semiono

Ветеран


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

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


Пожалуйста, есть вопрос! http://forum.oszone.net/showthread.php?p=1141691
Удаление с исключением?

-------
Полезное сообщение


Отправлено: 15:47, 12-06-2009 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] удаление содержимого папок daswer Скриптовые языки администрирования Windows 6 21-08-2013 16:19
CMD/BAT - [решено] Удаление созданных папок и файлов по времени zavoruev Скриптовые языки администрирования Windows 24 22-04-2013 10:36
VBS/WSH/JS - [решено] Удаление пустых папок VBasic forsem Скриптовые языки администрирования Windows 4 13-05-2010 09:56
CMD/BAT - [решено] *.bat файл на удаление папок по шаблону smol84 Скриптовые языки администрирования Windows 3 10-03-2009 15:49
[решено] Удаление файлов и папок ArGoth Автоматическая установка Windows 2000/XP/2003 1 26-05-2008 18:03




 
Переход