![]() |
Удалить папки в папках
Помогите сделать скрипт для удаление папок. Нужно удалить папки Folder1 и Folder3 в папках со звездочкой.
Пример : Folder1 { Folder1*<<Folder1,Folder2,Folder3 Folder2*<<Folder1,Folder2,Folder3 Folder3*<<Folder1,Folder2,Folder3 Folder4*<<Folder1,Folder2,Folder3 Folder5*<<Folder1,Folder2,Folder3 } "<<" значит что "Folder1,Folder2,Folder3" находятся в данной папке. "Куда смотрит клюв" |
GIGABAIT, плохой пример: в именах файлов и каталогов FATx и NTFS не поддерживается символ «*».
|
Цитата:
|
GIGABAIT, раз неважно — тогда возьмите в руки tree.exe и приведите нормальный пример.
|
Цитата:
Код:
D:. Я приписал к папке "Удалить" которою нужно удалить. |
Странная какая-то задача, но...
Код:
pushd d:\test Если в названии папок присутствуют кирилические символы cmd\bat сохранять в 866 кодировке |
Особо не проверялось. Тренируйтесь на копии, удалив echo.
Код:
for /d %%i in ("D:\test\*.*") do 2>nul (echo rd /s /q "%%~fi\Папка1" & echo rd /s /q "%%~fi\Папка3") |
Цитата:
Цитата:
Возможно это нужно было сказать сначала , но я об этом чет не подумал... Использовав команду "pushd d:\test" или цикл for найти в этой папке , в нашем случае это "d:\test" все папки c именем "blabla" и удалить , либо другое имя(не важно) ? т.к. данный скрипт работает только с такой структурой папкой которую я выше кинул. т.к. я не думал что вы сделаете скрипт для данной структуры папок , а я думал что вы сделаете чтоб он проверил данную папку(в нашем случае это test) и все под- папки в ней на "blabla"(или другое имя) папки и удалит их . P.S "forfiles" не подходит ? P.S Сделал данный скрипт : Код:
FORFILES /P . /M folder1 /S /C "cmd /c RD /S /Q @file" Код:
/M folder1 Код:
folder2 folder3 он удаляет все папки с этим названием. Пример 3: Код:
├───materials Код:
FORFILES /P . /M models /S /C "cmd /c RD /S /Q @file" Или нужно сделать чтоб он удалял ВСЕ папки используя эту команду Код:
FORFILES /P . /M models /S /C "cmd /c RD /S /Q @file" Вообщем несколько раз дополнял , надеюсь понятно вышло. |
Цитата:
|
Цитата:
Но нельзя ли сделать скрипт как я описал выше ? Т.е он будет проверять "test" папку и ее подпапки на "folder1" папки и будет удалять их ? Но добавив маску на folder2 и в ней будет подпапка folder1 которую он не будет удалять. То-есть обратная маска ? Пример 3 : Код:
├───materials Пример 4 : Скрытый текст
Код:
Test В примере 4 видно что я хочу объяснить. Цикл или FORFILES должен пройтись по всем этим папкам и подпапкам , и удалить папки "folder3" с подпапкой delthis но не трогать другие папки folder3. Цитата:
|
Цитата:
|
Учитывая объемы проще написать прицельно удаление для нескольких папок, а не мутить скрипт с сомнительными условиями.
Хотя возможно прокатит что-то вроде: Код:
for /f "delims=" %%i in ('dir d:\test /s /a:d /b^|findstr Delthis$') do ( |
Время: 05:50. |
Время: 05:50.
© OSzone.net 2001-