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

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

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

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


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

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


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

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

 

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


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

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


Цитата amel27:
[rh][0-9][0-9]" »
там попадаются расширения и .r108 и .h1454 (и по три и по четыре цифры)
значить нужно добавить ещё пару цифр в скобках? вот так
Цитата:
[rh][0-9][0-9][0-9][0-9]" »
но так уже не удаляются с двумя цифрами........

Последний раз редактировалось intersk, 12-06-2011 в 01:22.


Отправлено: 00:57, 12-06-2011 | #11



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

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


Googler


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

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


Цитата intersk:
но так уже не удаляются с двумя цифрами »
отбор файлов с 1 и более цифр на конце:
Код: Выделить весь код
findstr/eir "\.[rh][0-9][0-9]*"
справка по FINDSTR:
Код: Выделить весь код
help findstr|more
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:26, 12-06-2011 | #12


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


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

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


всего звездочку нужно поставить - вот это логическая красота! такие тонкости знаешь!
а можно данный батник запаковать в какой исполняемый файл? (при запуске выбираешь целевую папку в которой надо "почистить" и по окончании список того что удалено)

Последний раз редактировалось intersk, 12-06-2011 в 14:17.


Отправлено: 14:10, 12-06-2011 | #13


Googler


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

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


Цитата intersk:
а можно данный батник запаковать в какой исполняемый файл? »
говорят можно - с помощью стороннего ПО, но этим не увлекаюсь и вам не советую,
если действительно надо - лучше посмотреть в сторону AutoIT/AHK
Цитата intersk:
при запуске выбираешь целевую папку в которой надо "почистить" и по окончании список того что удалено»
для этого EXE не нужен, к примеру:

- оформить ввод папки через параметр;
- назвать батник что-нибудь типа "Чистка папки.CMD";
- скопировать его в папку "%UserProfile%\SendTo";
- выбрать в обозревателе папку и "отправить" на батник

читать дальше »
Код: Выделить весь код
@echo off
if not exist "%~1\" exit
pushd "%~1"
set $i=0& for /f "delims=" %%a in (
'dir/b/s/a-d^|findstr/eir "\.[rh][0-9]*"^|findstr/eirv "\.[rh]01 \.[rh]16"'
) do del "%%a">nul&&(echo %%a & set/a $i+=1)
if %$i% gtr 0 (
echo -----------------
echo %$i% files deleted
pause>nul
)
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:25, 12-06-2011 | #14


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


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

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


понятно, буду пользоваться простым способом - помещением батника в нужную папку. Тема решена!

Отправлено: 16:37, 12-06-2011 | #15


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


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

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


Цитата amel27:
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" »
знакомые ребята-программисты сказали что способ оригинальный, интересный ))) я конечно сказал что это не я )) ещё раз спасибо!

Отправлено: 09:25, 15-06-2011 | #16


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


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

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


понадобилась модернизация командного файла )
Еще нужно поудалять файлы такие: они содержать в себе [название][_][цифры].rsc (*****_42.rsc)/
Нужно оставить только файлы содержащие _01.rsc, _16.rsc, _93.rsc

Код для удаления файлов НЕ *.r01, *.r16, *r.93 и *.h01, *.h16, *h.93 будет такой (под спойлером - прошу проверить)
читать дальше »
@echo off
if not exist "%~1\" exit
pushd "%~1"
set $i=0& for /f "delims=" %%a in (
'dir/b/s/a-d^|findstr/eir "\.[rh][0-9]*"^|findstr/eirv "\.[rh]01 \.[rh]16 \.[rh]93"'
) do del "%%a">nul&&(echo %%a & set/a $i+=1)
if %$i% gtr 0 (
echo -----------------
echo %$i% files deleted
pause>nul
)


PS у автора командного файла заранее прошу разрешения на указание его ника при пользовании командным файлом

Отправлено: 15:29, 22-06-2011 | #17


Googler


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

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


Цитата intersk:
нужно поудалять файлы такие: они содержать в себе [название][_][цифры].rsc (*****_42.rsc)/
Нужно оставить только файлы содержащие _01.rsc, _16.rsc, _93.rsc »
навскидку:
Код: Выделить весь код
'dir/b/s/a-d^|findstr/eir "_[0-9][0-9]*\.rsc"^|findstr/eirv "_01\.rsc _16\.rsc _93\.rsc"'

Отправлено: 15:59, 22-06-2011 | #18


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


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

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


amel27, так? или можно как то в "одну" строку уместить?

@echo off
if not exist "%~1\" exit
pushd "%~1"
set $i=0& for /f "delims=" %%a in (
'dir/b/s/a-d^|findstr/eir "\.[rh][0-9]*"^|findstr/eirv "\.[rh]01 \.[rh]16 \.[rh]93"'
'dir/b/s/a-d^|findstr/eir "_[0-9][0-9]*\.rsc"^|findstr/eirv "_01\.rsc _16\.rsc _93\.rsc"'

) do del "%%a">nul&&(echo %%a & set/a $i+=1)
if %$i% gtr 0 (
echo -----------------
echo %$i% files deleted
pause>nul
)

И чтобы в конце работы батника было "для закрытия окна нажмите любую клавишу"

Последний раз редактировалось intersk, 23-06-2011 в 09:28.


Отправлено: 09:22, 23-06-2011 | #19


Googler


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

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


Цитата intersk:
можно как то в "одну" строку уместить? »
ну если только сформулировать "одним" условием )

Цитата intersk:
чтобы в конце работы батника было "для закрытия окна нажмите любую клавишу" »
Код: Выделить весь код
echo для закрытия окна нажмите любую клавишу& pause>nul

Отправлено: 11:49, 23-06-2011 | #20



Компьютерный форум 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




 
Переход