Модераторы: bartram, Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Автоматизация удаления папок, Через bat файл 
:(
    Опции темы
DragonFire
Дата 29.12.2009, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



Есть каталог, в нем лежит bat файл. Этот bat файл должен пробегатся по всем пложенным каталогам рекурсивно и удалять все папки, которые наз. "obj".
Для файлов *.obj работат такой скрипт:
Код

del .\*.obj /S 

А для папок уже такой не работает:
Код

rd .\obj /S

 smile 


--------------------
PM MAIL ICQ   Вверх
Akella
Дата 29.12.2009, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 73
Всего: 329



Цитата(DragonFire @  29.12.2009,  16:51 Найти цитируемый пост)
такой не работает:

может
Код
rd .\obj /S /Q

PM MAIL   Вверх
DragonFire
Дата 29.12.2009, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



Цитата(Akella @  29.12.2009,  17:45 Найти цитируемый пост)
может

не может....


--------------------
PM MAIL ICQ   Вверх
chip_and_dayl
Дата 29.12.2009, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 603
Регистрация: 22.4.2007
Где: Украина, Киев

Репутация: 2
Всего: 9



Цитата(DragonFire @  29.12.2009,  16:51 Найти цитируемый пост)
del .\*.obj /S 

Это в принципе аналогично этому del *.obj  /s

поэтому можно rd obj /S


--------------------
Фсё будет хорошо!!!
PM MAIL Skype   Вверх
DragonFire
Дата 29.12.2009, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



Цитата(chip_and_dayl @  29.12.2009,  19:21 Найти цитируемый пост)
поэтому можно rd obj /S 

И это не можно smile 
Удаляет только в текущей папке подпапку obj... А рекурсивно по вложенным папкам не проходит...


--------------------
PM MAIL ICQ   Вверх
chip_and_dayl
Дата 29.12.2009, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 603
Регистрация: 22.4.2007
Где: Украина, Киев

Репутация: 2
Всего: 9



Код

@echo off
setlocal
rem rdir=название_удаляемых_каталогов
set rdir=obj
rem Раскоментировать чтоб задавать имя удаляемого каталога в строке параметров:
rem set rdir=%1
set fpath=%~dps0
call :func %fpath:~0,-1%
goto end
:func
for /f "delims=" %%i in ('dir %1 /a:d /b') do IF /I %%i==%rdir% ( rmdir /s /q %1\%%i && echo deleted 

%1\%%i ) ELSE ( call :func %1\%%i )
exit /b
:end


Вот нашел. Пока проверял, то себе флешку очистил)  Правда другим кодом. Батник должен быть  в корне папки, где будут очищаться папки

Это сообщение отредактировал(а) chip_and_dayl - 29.12.2009, 21:41


--------------------
Фсё будет хорошо!!!
PM MAIL Skype   Вверх
DragonFire
Дата 30.12.2009, 04:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



Ага тоже находил... Только почему-то не работало... Можно реальный пример для папки "obj"?


--------------------
PM MAIL ICQ   Вверх
chip_and_dayl
Дата 30.12.2009, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 603
Регистрация: 22.4.2007
Где: Украина, Киев

Репутация: 2
Всего: 9



Я там сделал под тебя, то есть под папку obj:) Копируешь и запускаешь батник. Лично проверил. 

Он как работает!?! смотрит текущую папку, и начиная с этой папки и подпапках смотрит папку с именем Obj

Добавлено @ 11:46
Как проверял. Создал папку Темп, куда поместил батник этот, в этой же папке Темп есть следующий папки:

Temp\Nb
Temp\Nb\f\obj - содержит текстовой файл
Temp\Nb\obj - пустая папка
Temp\Obj  - который для пущей водицы содержит также файл текстовой
Temp\a.bat - сам батник

После запуска батника, остаются следующий папки с файлами
Temp\Nb
Temp\Nb\f

Добавлено через 7 минут и 59 секунд
Код

set rdir=obj

здесь указываешь имя папки

Это сообщение отредактировал(а) chip_and_dayl - 30.12.2009, 11:46


--------------------
Фсё будет хорошо!!!
PM MAIL Skype   Вверх
DragonFire
Дата 30.12.2009, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



А у меня не работает... Корневая папка - DIAR Studio 3:
Код


F:\Job\DIAR Studio 3>setlocal

F:\Job\DIAR Studio 3>rem rdir=эрчтрэшх_єфры хь√ї_ърЄрыюуют

F:\Job\DIAR Studio 3>set rdir=obj

F:\Job\DIAR Studio 3>rem ╨рёъюьхэЄшЁютрЄ№ ўЄюс чрфртрЄ№ шь  єфры хьюую ърЄрыюур
т ёЄЁюъх ярЁрьхЄЁют:

F:\Job\DIAR Studio 3>rem set rdir=

F:\Job\DIAR Studio 3>set fpath=F:\Job\DIAR Studio 3\

F:\Job\DIAR Studio 3>call :func F:\Job\DIAR Studio 3

F:\Job\DIAR Studio 3>for /F "delims=" %i in ('dir F:\Job\DIAR /a:d /b') do IF /I
 %i == obj (
rmdir /s /q F:\Job\DIAR\%i   && echo deleted
 F:\Job\DIAR\%i
)  ELSE (call :func F:\Job\DIAR\%i  )
File Not Found

F:\Job\DIAR Studio 3>exit /b

F:\Job\DIAR Studio 3>goto end

F:\Job\DIAR Studio 3>pause
Press any key to continue . . .



--------------------
PM MAIL ICQ   Вверх
DragonFire
Дата 30.12.2009, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



В общем проблема была в пробелах в названии папки. Вот рабочий скрипт:
Код

echo Deleting Folders
setlocal
set rdir=obj
set fpath=%~dps0
call :func "%fpath:~0,-1%"
goto end
:func
for /f "delims=" %%i in ('dir %1 /a:d /b') do IF /I %%i==%rdir% ( rmdir /s /q %1\%%i && echo Deleted Folder - %1\%%i ) 
ELSE ( call :func %1\"%%i" )
exit /b
:end


Это сообщение отредактировал(а) DragonFire - 30.12.2009, 15:45


--------------------
PM MAIL ICQ   Вверх
mihanik
Дата 30.12.2009, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 61
Всего: 109



А можно и VBS использовать...
Вот так рекурсивно обходятся все подпапки определённой папки...

Код

Set FSO = CreateObject("Scripting.FileSystemObject")
ShowSubfolders FSO.GetFolder("C:\MyFolder")

Sub ShowSubFolders(Folder)
    For Each Subfolder in Folder.SubFolders
        Wscript.Echo Subfolder.Path
        ShowSubFolders Subfolder
    Next
End Sub


А вот так удаляется папка

Код

Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFolder("C:\MyFolder")



Почему вы так любите батники... VBS намного красивее...

Это сообщение отредактировал(а) mihanik - 31.12.2009, 06:43


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
DragonFire
Дата 31.12.2009, 02:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



Угу еще можно написать на c или c++ прогу... Любим потому что правится налету без всяких перекомпиляций. 
Если я что-то не знаю про VBS - поправьте....


--------------------
PM MAIL ICQ   Вверх
mihanik
Дата 31.12.2009, 06:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 61
Всего: 109



Цитата(DragonFire @  31.12.2009,  02:24 Найти цитируемый пост)
Любим потому что правится налету без всяких перекомпиляций


Такая же фигня.
Это интерпретируемый системой язык, который не требует компиляции.
Программа на VBS - это такой же текстовый файл, как и  BAT-файл.


Цитата(DragonFire @  31.12.2009,  02:24 Найти цитируемый пост)
Если я что-то не знаю про VBS - поправьте.... 

С удовольствием...
Только это уже тема для холивара...
 smile 



--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
DragonFire
Дата 31.12.2009, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



mihanik, может быть потому еще используем что привыкли.. =) 
А вообще в семерке power shell скрипты стали модными вроде... 


--------------------
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Windows"
December
bartram
Akella

Запрещается!

1. Обсуждать взлом и делиться кряками

2. Способствовать созданию и распространению вирусов

  • Для бессмертных бородатых вопросов типа Win vs Nix есть специальный форум Религиозные Войны
  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • ВСЕГДА УКАЗЫВАЙТЕ ВЕРСИЮ ОС

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, December, bartram, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Windows | Следующая тема »


 




[ Время генерации скрипта: 0.1131 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.