[CMD] Удаление файлов Thumbs.db и папок .thumb

hi_duck

Новый пользователь
Сообщения
5
Реакции
0
Добрый день! Помогите с батником для полного сканирования диска и удаления с него папок и отдельных файлов.
Папки .thumb .incomplete и ещё парочка.
Файлы thumbs.db desktop.ini ehthumbs.db и подобные.

PS. А если сделать ещё после запуска ввод с клавиатуры диска для сканирования и отображение кол-ва удаленных файлов, то было бы вообще супер.
Заранее большое спасибо!
 
Здравстуйте, @hi_duck!
Добро пожаловать на SafeZone.

CMD/BATCH:
@echo off
SetLocal EnableExtensions

set files=thumbs.db desktop.ini ehthumbs.db
set folders=.thumb .incomplete

echo [CACHE FILES REMOVER]
echo.

::fsutil fsinfo drives
wmic LOGICALDISK get name

echo.
set /p "d=Enter the drive: "

if "%d%"=="" set "d=%~dp0"
if "%d:~1,1%" neq ":" set "d=%d%:"

pushd "%d%\" || exit /b

echo Selected path is: %cd%

echo.
pause
echo.

set /a fc=0, dc=0

for /f "delims=" %%a in ('2^>NUL dir /s /b /a-d-l %files%') do echo %%a & set /a fc+=1 & del /f /a "%%a"
for /f "delims=" %%a in ('2^>NUL dir /s /b /ad-l %folders%') do echo %%a & set /a dc+=1 & rd /s /q "%%a"

echo.
echo FILES removed: %fc%
echo DIRECTORIES removed: %dc%
echo.
pause
 
@Dragokas, спасибо большое за очень оперативную помощь!
Вы сделали даже больше, чем я попросил. Круто!
Всё работает, как часики. Удалил с диска больше 2тыс папок с мусором.
Я очень рад.
PS. Заметил, что удалился ini по пути
e:\$RECYCLE.BIN\S-1-5-21-4115208621-3632187753-2307543183-1001\desktop.ini
уж не знаю повлияет это на что-нибудь в дальнейшем (диск не системный)
 
Ой, ошибочка вышла))
Некоторые папки не удалились, т.к. они с атрибутом "Только для чтения". Возможно это исправить в батнике?
Странно, но с этих папок (.thumb) не удаляется атрибут "Только для чтения" через свойства папки. Галочка снова появляется.
 
PS. Заметил, что удалился ini по пути
Корзине это не страшно. Можно убивать хоть всю ее папку. Сама починится.

Некоторые папки не удалились, т.к. они с атрибутом "Только для чтения". Возможно это исправить в батнике?
Это не из-за RO, скорее из-за прав доступа.

Новый код.
+ сброс прав доступа
+ починил процедуру поиска папок (была неверной, такие уж специфические особенности CMD dir :Dash1: dir
".thumb" не ищет, приходится подставлять ".thumb?" )

Не удаётся опубликовать, прикрепил файлом.
 

Вложения

  • re.rar
    825 байт · Просмотры: 21
@Dragokas, спасибо за поддержку!
Я только подумал об этом:
Search options:
FOLDERS: .thumb .incomplete
FILES: thumbs.db desktop.ini ehthumbs.db
А оно уже реализовано. @Dragokas, вы наверно мысли умеете читать!?))

Во время работы после каждого удаленного файла и папки пишет два раза такое:
ОШИБКА: владение файлами невозможно применять в незащищенных файловых системах;
отсутствует поддержка для таблиц управления доступом (ACL).
ОШИБКА: владение файлами невозможно применять в незащищенных файловых системах;
отсутствует поддержка для таблиц управления доступом (ACL).
Но удаление работает исправно, даже со скрытыми и RO файлами/папками.
Спасибо вам большое!

+ сброс прав доступа
Сброс для всех файлов или только для удаляемых?
 
Последнее редактирование:
Странно, сейчас поудалял батником с HDD (подключен через USB) и этих ошибок не было. Ошибки были при тесте удаления с флешки.
 
А оно уже реализовано. @Dragokas, вы наверно мысли умеете читать!?))
Иногда приходится по работе.

Во время работы после каждого удаленного файла и папки пишет два раза такое:
Скорее всего на проверяемом носителе ФС FAT.
Чтобы заткнуть ошибки, довавьте 2>NUL к строкам takeown и icacls.

Сброс для всех файлов или только для удаляемых?
Только удаляемых разумеется.
 
Здравстуйте, @hi_duck!
Добро пожаловать на SafeZone.

CMD/BATCH:
@echo off
SetLocal EnableExtensions

set files=thumbs.db desktop.ini ehthumbs.db
set folders=.thumb .incomplete

echo [CACHE FILES REMOVER]
echo.

::fsutil fsinfo drives
wmic LOGICALDISK get name

echo.
set /p "d=Enter the drive: "

if "%d%"=="" set "d=%~dp0"
if "%d:~1,1%" neq ":" set "d=%d%:"

pushd "%d%\" || exit /b

echo Selected path is: %cd%

echo.
pause
echo.

set /a fc=0, dc=0

for /f "delims=" %%a in ('2^>NUL dir /s /b /a-d-l %files%') do echo %%a & set /a fc+=1 & del /f /a "%%a"
for /f "delims=" %%a in ('2^>NUL dir /s /b /ad-l %folders%') do echo %%a & set /a dc+=1 & rd /s /q "%%a"

echo.
echo FILES removed: %fc%
echo DIRECTORIES removed: %dc%
echo.
pause

Уважаемый @Dragokas! Запустил ваш скрипт, выбрал диск D и скрипт удалил мне ВСЁ с этого диска!!! Подскажите, как теперь все вернуть
 
Программами для восстановления удаленных данных. Не используйте до восстановления диск д, а то перезапишите удаленное.
 
Restorer2000

Если ничего там не меняли, то не должен был удалять ничего, кроме указанного в теме.
 
Назад
Сверху Снизу