Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Удаление всех файлов кроме одного в подпапках

Ответить
Настройки темы
CMD/BAT - Удаление всех файлов кроме одного в подпапках

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Можно ли с помошью BAT-файла удалить все файлы из подпапок, кроме одного-трех, которые во всех подпапках имеют одно и то же название ?

Отправлено: 11:24, 27-07-2012

 

Пользователь


Сообщения: 59
Благодарности: 7

Профиль | Отправить PM | Цитировать


Для однгого файла

set FILEMASK=*.*

set FILEPATH=D:\TEMP

set FILENOTDELETE=file.file


for /f %%i in ('dir /b /s "%FILEPATH%\%FILEMASK%"') do if /I not "%%i" == "%%~dpi%FILENOTDELETE%" del /f/q "%%i" >nul 2>nul

Последний раз редактировалось NoIZz, 27-07-2012 в 21:08.


Отправлено: 18:49, 27-07-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Contributor


Сообщения: 2706
Благодарности: 1684

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@Echo Off

Set Otkuda=E:\DDDDD

Set NoDelete=C:\%~nx0.NoDelete
@Echo %0 >%NoDelete%

@Echo \01-Zig Zaggity Woop Woop Pt. 1.mp3 >>%NoDelete%
@Echo \04-Don't You Feel My Leg.mp3 >>%NoDelete%
@Echo \07-Next Week Sometime.mp3 >>%NoDelete%

FOR /F "usebackq delims=" %%f IN (`xcopy "%Otkuda%\*.*" C:\ /L /S /EXCLUDE:%NoDelete%`) DO Del "%%f"

Del %NoDelete%
Как это работает:
- Обрабатываем файлы в папке (с подпапками), определёнными в переменной Otkuda
- В текстовый файл в корне C:\ сохраняем список неудаляемых файлов (его имя я сделал по имени батника с добавлением .Nodelete. Для примера, я здесь указал 3 файла. Для бОльшей надёжности перед именем файла поставил \
В том же списке и имя батника (если он расположен в обрабатываемой папке для защиты от удаления самого себя)
- Xcopy выдаёт список (/L) файлов в указанной папке и подпапках (/S) для обработки в команде For (в частности, для удаления), за исключением имён записанных в наш текстовый файл (ключ /EXCLUDE). Следует учесть особенность работы ключа EXCLUDE
читать дальше »
Цитата:
/EXCLUDE:file1[+file2][+file3]...
Указывает список файлов, содержащих строки. Каждая строка
должна находиться в отдельной линии в файлах. Если одна из
строк совпадает с любой частью абсолютного пути
копируемого
файла, то такой файл копироваться не будет. Например,
указывание таких строк, как \\obj\\ или .obj, исключает
из копирования все файлы в папке obj и, соответственно, все
файлы с расширением .obj.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 29-07-2012 в 16:02.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:34, 29-07-2012 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Удаление всех файлов кроме одного в подпапках

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - удаление всех символов кроме шаблона gendalf Скриптовые языки администрирования Windows 3 19-07-2012 16:21
Любой язык - Удаление файлов старше 5 дней кроме указанного по имени. Joni Скриптовые языки администрирования Windows 6 11-07-2012 11:18
CMD/BAT - копирование файлов кроме одного, который будет указан первым параметром Veseliy Скриптовые языки администрирования Windows 1 29-02-2012 22:03
CMD/BAT - [решено] Удаление всех файлов с одним именем на всех дисках ZARG-X Скриптовые языки администрирования Windows 3 08-03-2010 11:53
Любой язык - нужен скрипт для удаления всех файлов кроме нужных для запуска Windows XP Dark Ange1 Скриптовые языки администрирования Windows 11 07-03-2010 13:34




 
Переход