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

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

Закрытая тема
Настройки темы
CMD/BAT - BAT-скрипт удаления файлов

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


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

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


Привет!
В папке находится 60 тыс файлов. У всех название сформировано по маске _дата_название_id.jpg Например, _20181212_розы_544.jpg.
И есть файл со значениями id для удаления. Эти id в файле расположены в столбец, один id на одну строку.
Как сделать скрипт, который удалял бы все файлы, в названии которых есть id, указанный в файле?
Или это только отдельную прогу писать?

Отправлено: 11:52, 19-12-2018

 

Ветеран


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

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


Код: Выделить весь код
echo off
for /f "usebackq delims=" %%i in ("C:\list.txt") do dir /B *_%%i.jpg
выводит список файлов, для удаления - заменить dir /B на del

Последний раз редактировалось Busla, 19-12-2018 в 12:17.

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

Отправлено: 12:09, 19-12-2018 | #2



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

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


Ветеран


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

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


Busla, Stolc,
под один код много чего попадет, ведь код один и тот же может быть у многих файлов, точно дата или имя не будут играть роли?
Файл 155566

Последний раз редактировалось alpap, 05-04-2019 в 02:42.


Отправлено: 14:25, 19-12-2018 | #3


Ветеран


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

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


alpap, id - сокращение от identificator
и по формулировке самой задачи видно что под id подразумевается идентификатор

Отправлено: 20:25, 19-12-2018 | #4


Ветеран


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

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


Цитата Busla:
под id подразумевается идентификатор »
да понятно это все и я ничего не имею против, только ТС иногда поздно вспоминают что не совсем четко описали условие задачи, поэтому на скрине специально привел возможные варианты из которых точно можно сказать так надо или дополнительно, например, в рамках одной даты.

Отправлено: 22:58, 19-12-2018 | #5


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


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

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


Может кто-то и поможет с написанием скрипта...
Задача следущая:

Есть в папке файлы с названиями типа: имя_rabota+два числа.jpg

mama_myla_ramu_rabota01.jpg, mama_myla_ramu_rabota02.jpg, mama_myla_ramu_rabota03.jpg
papa_rubil_drova_rabota01.jpg, papa_rubil_drova_rabota02.jpg
syn_spal_doma_rabota01.jpg

Результат: после удаления должен остатся файл с найбольшим числом в конце в своей группе:

mama_myla_ramu_rabota03.jpg, papa_rubil_drova_rabota02.jpg, syn_spal_doma_rabota01.jpg

и ещё последний файл в своей группе отличается существенно в своем размере от других. Может как-то ещё поможет в сортировке и удалении.

Отправлено: 12:57, 21-05-2021 | #6


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Цитата engeltud:
отличается существенно в своем размере от других »
В какую сторону?

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 13:16, 21-05-2021 | #7


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


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

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


в большую, но лучше удалять по названию. Если есть возможность, тогда два отдельных скриптa по двум признакам. Я думаю, что удаление за признаком размера будет сложнее чем по названию.

Отправлено: 13:34, 21-05-2021 | #8


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Powershell
Код: Выделить весь код
cd D:\temp\test

# По имени
(dir).BaseName -replace "\d{2}$" |sort -Unique |% {dir -filter "*$_*" |select -SkipLast 1 |del -WhatIf}
# По размеру
(dir).BaseName -replace "\d{2}$" |sort -Unique |% {dir -filter "*$_*" |sort length |select -SkipLast 1 |del -WhatIf}

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Последний раз редактировалось DJ Mogarych, 21-05-2021 в 14:08. Причина: лучше через sort, а не group


Отправлено: 13:45, 21-05-2021 | #9


Ветеран


Contributor


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

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


CMD по имени
Код: Выделить весь код
@Echo Off
cls
	Set "BoxIn=Z:\Box_In"
	Set "Find=^.*[0-9][0-9]\.jpg$"

	For /f "usebackq delims=" %%f In (`2^>nul Dir /B /A:-D /O:-N "%BoxIn%\*.*" ^| findstr.exe /R /I /C:"%Find%"`) Do (
		If Exist "%BoxIn%\%%f" (
			Set "Name=%%~nf"
			For /f "usebackq skip=1 delims=" %%i In (`2^>nul Call Dir /B /A:-D /O:-N "%BoxIn%\%%Name:~0,-2%%*.*" ^| findstr.exe /R /I /C:"%Find%"`) Do Del "%BoxIn%\%%i"
		)
	)
pause
Exit /B
Если по размеру, заменить /O:-N на /O:-S
во втором For

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


Последний раз редактировалось megaloman, 21-05-2021 в 16:29.


Отправлено: 16:15, 21-05-2021 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] Скрипт для удаления файлов и папок BKPB Скриптовые языки администрирования Windows 32 04-02-2018 20:14
Любой язык - Скрипт удаления файлов в папке старше N дней dobermann Скриптовые языки администрирования Windows 1 18-03-2016 20:31
VBS/WSH/JS - Скрипт удаления папок/подпапок и файлов zhuk09 Скриптовые языки администрирования Windows 4 07-12-2015 12:41
CMD/BAT - [решено] Как переделать скрипт удаления папок, на скрипт удаления файлов ufooo Скриптовые языки администрирования Windows 2 02-06-2015 12:22
CMD/BAT - [решено] Скрипт для удаления файлов. Bond01 Скриптовые языки администрирования Windows 8 01-10-2010 11:02




 
Переход