Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   удаление подкаталогов и файлов (http://forum.oszone.net/showthread.php?t=242363)

Miales 10-09-2012 12:55 1986081

удаление подкаталогов и файлов
 
Здравствуйте! допустим есть каталог "folder", в нем есть n-ное количество файлов и каталогов. нужно удалить ВСЕ файлы и каталоги в "folder" за исключением заданных в скрипте: например нужно оставить 1.txt, 2.doc, 3.ini. И есть ли возможность не удалять допустим еще 1 папку "NewFolder", которая находится так же внутри "folder".

megaloman 11-09-2012 21:45 1986964

Код:

@Echo off

rem каталог "folder",
rem нужно удалить ВСЕ файлы и каталоги в "folder"
rem за исключением заданных 1.txt, 2.doc, 3.ini.
rem не удалять папку "NewFolder", которая в "folder".

Set Exc=%~n0.exclude

Echo \1.txt >%Exc%
Echo \2.doc >>%Exc%
Echo \3.ini >>%Exc%

Set Folder=D:\Delete\Folder
Set NoFolDel=D:\Delete\Folder\NewFolder

FOR /F "usebackq delims=" %%f IN (`Xcopy /L /S /EXCLUDE:%Exc% "%Folder%\*.*" %Tmp%`) DO Del "%%f" 2>nul
Cd /D "%NoFolDel%"
FOR /F "tokens=*" %%f IN ('Dir "%Folder%\*.*" /B /S /A:D  2^>nul^|Sort /R') DO  Rd "%%f" 2>nul

Если батник будет внутри Folder пропишите его в неудаляемых. Пути и имена файлов напИшите реальные, проследите, чтобы в строках с именами и путями отсутствовали пробелы справа - иначе путь будет кривой. Если в именах-путях будут русские буквы- батник должен быть написан в 866 (Дос) кодировке.
Спасибо El Sanchez, использовал его решение.


Время: 19:07.

Время: 19:07.
© OSzone.net 2001-