king_stiven
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: В папке (например папка WINDOWS) лежит множество папок и файлов с произвольными именами. В одной из тех папкок (например папка system32) - также множество папок и файлов с произвольными именами. И вот эти папки (например подпапки в папке oobe) нужно удалить, но не все - а, например, кроме 2-х, названия которых известны (например папки images и sample). | Код: @echo off chcp 1251>nul set "f1=system32" set "f2=oobe" set "f3=images" set "f4=sample" for /r %%a in (.) do ( if defined not_first1 ( if "%%~na"=="%f1%" ( pushd "%%a" if not errorlevel 1 for /r %%b in (.) do ( if defined not_first2 ( if "%%~nb"=="%f2%" ( pushd "%%b" if not errorlevel 1 for /r %%c in (.) do ( if defined not_first3 ( if /i "%%~nc" neq "%f3%" if /i "%%~nc" neq "%f4%" rd /s /q "%%c" ) else ( set not_first3=1 ) ) ) ) else ( set not_first2=1 ) ) ) ) else ( set not_first1=1 ) ) | Батник кидаем в WINDOWS, он там в папках и подпапках ищет первую попавшуюся папку с именем system32, причём это может быть даже папка C:\WINDOWS\AppPatch\system32\ В ней он ищет первую попавшуюся папку с именем oobe В ней он удаляет все папки кроме имён images и sample, причём удалит и вот такие папки C:\WINDOWS\AppPatch\system32\1\oobe\1\images а вот такие оставит C:\WINDOWS\AppPatch\system32\1\oobe\images\1 В батнике реализована защита "от дурака" Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!! Если в условиях напишешь, что ты ищешь например только в папке WINDOWS папку system32,а не в подпапках, то есть ищешь WINDOWS\system32\ а не WINDOWS\1\system32\ (то же самое и для oobe) то задача решается проще: @echo off chcp 1251>nul set "f1=system32" set "f2=oobe" set "f3=images" set "f4=sample" for /f "delims=" %%c in ('dir "%f1%\%f2%"/a:d /b') do if /i "%%~nc" neq "%f3%" if /i "%%~nc" neq "%f4%" rd /s /q "%f1%\%f2%\%%c" | Всего записей: 2232 | Зарегистр. 17-07-2006 | Отправлено: 10:31 01-06-2011 | Исправлено: king_stiven, 10:57 01-06-2011 |
|