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" |   Всего записей: 2237 | Зарегистр. 17-07-2006 | Отправлено:  10:31 01-06-2011  | Исправлено: king_stiven,   10:57 01-06-2011    |  
  |