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

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

Ответить
Настройки темы
CMD/BAT - [решено] Нужен Bat-ник который будет удалять файлы в папке с определенным расширением

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


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

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


есть папка (например) C:\Files. В ней есть ещё папки. В этих папках среди других файлов есть файлы с расширением *.r01, *.r02, *.r28 и с другими цифрами.
В ней нужно удалить файлы которые имеют расширение отличное от *.r01 и *.r16. То есть эти оставить, а с другими цифрами удалить.
Каким будет батник?

Отправлено: 16:33, 31-05-2011

 

Ветеран


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

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


intersk,
Код: Выделить весь код
@echo off
setlocal

for %%i in ( .r01 .r16 ) do set "check%%i=1"
for /f "tokens=*" %%i in (' dir /b /s /a-d "c:\files" ') do (

    if not defined check%%~xi del "%%i"

)

Последний раз редактировалось Foreigner, 31-05-2011 в 17:58.

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

Отправлено: 17:48, 31-05-2011 | #2



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

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


Аватара для El Sanchez

Ветеран


Contributor


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

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


intersk, №2
Код: Выделить весь код
For /R "C:\Files" %%A In (*) Do If /i "%%~xA" NEQ ".r01" If /i "%%~xA" NEQ ".r16" Del /F /Q "%%A" 2>nul
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:14, 31-05-2011 | #3


Googler


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

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


до кучи:
Код: Выделить весь код
for /f "delims=" %%a in ('dir/b/s/a-d *^|findstr/eiv "\.r01 \.r16"') do del "%%a"

Последний раз редактировалось amel27, 01-06-2011 в 09:28. Причина: ключ /R не нужен

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

Отправлено: 06:43, 01-06-2011 | #4


Аватара для ferget

Разный


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

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


Цитата amel27:
a-d *^|findstr/eirv "\.r01 \.r16"' »
не могли бы вы объяснить эту часть
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:57, 01-06-2011 | #5


Googler


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

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


ferget, так понятней?
Код: Выделить весь код
findstr /e /i /r /v "\.r01 \.r16"
оставляет все строки кроме заканчивающихся на ".r01" или ".r16"
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:01, 01-06-2011 | #6


Аватара для ferget

Разный


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

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


Цитата ferget:
/a-d *^ »
спасибо, еще вот
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:18, 01-06-2011 | #7


Googler


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

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


ferget,
Код: Выделить весь код
dir /b /s /a-d
ключ /a-d значит исключая каталоги
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:28, 01-06-2011 | #8


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


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

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


Уточню свой вопрос - Файлы в расширении имеют первую букву либо *.rxx либо *.hxx.
xx - это цифры. Они разные. Нужно оставить только с цифрами 01 и 16 (*.r01, *.r16, *.h01, *.h16). В папках ещё есть разные файлы. Остальные файлы в папках не удалять!!!!
PS. сработал только первый вариант...но почему то файл *.cmd удаляется после работы...(и удаляет все файлы - но теперь уточнил свою задачу)

Последний раз редактировалось intersk, 10-06-2011 в 15:37.


Отправлено: 15:23, 10-06-2011 | #9


Googler


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

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


Цитата intersk:
Файлы в расширении имеют первую букву либо *.rxx либо *.hxx »
Код: Выделить весь код
for /f "delims=" %%a in (
'dir/b/s/a-d^|findstr/eir "\.[rh][0-9][0-9]"^|findstr/eirv "\.[rh]01 \.[rh]16"'
) do del "%%a"
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:48, 10-06-2011 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Нужен bat-ник для поиска и удаления файлов и папок по маске Nun-Nun Скриптовые языки администрирования Windows 14 08-11-2014 09:53
CMD/BAT - [решено] Нужен Bat-ник который будет искать слово в текстовом файле .txt Alexzander_bas Скриптовые языки администрирования Windows 10 06-06-2011 16:51
CMD/BAT - Пакетный файл, предназначенный для удаления файлов с определенным расширением ConMan Скриптовые языки администрирования Windows 11 26-03-2011 13:01
Интерфейс - [решено] Нужен Файл explorer.exe который распологается в папке Windows обязательно SP2 Baw17 Microsoft Windows 2000/XP 7 30-11-2010 14:02
CMD/BAT - [решено] как задать *bat'ник чтобы он сам себя скопировал в автозагрузку и файлы находящиеся р One THE darK Скриптовые языки администрирования Windows 14 14-06-2010 10:35




 
Переход