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

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

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

Аватара для 7human7

Старожил


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


Конфигурация

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


Цитата 7human7:
cmd-шник на удаление всех файлов с опр. папки? »
что по этому вопросу?

Отправлено: 11:41, 09-02-2009

 
4zz 4zz вне форума

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


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

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


megaloman,
Первый код ставит на удаление:
Содержимое папки C:\Users\User\Desktop\TheBatPortable\Data\Mail\ХХХ@MAIL.RU\IMAP
т.е. не ту папку (IMAP).

А второй код обрабатывает только одну папку:
Содержимое папки C:\Users\User\Desktop\TheBatPortable\Data\Mail\ХХХ@MAIL.RU\Outbox
т.е. только Outbox (без Sent, Trash) и другие ящики не обрабатывает (например 555@MAIL.RU и т.д.) находящиеся в C:\Users\User\Desktop\TheBatPortable\Data\Mail\
((

Отправлено: 00:38, 14-06-2022 | #41



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

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


Ветеран


Contributor


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

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


Цитата 4zz:
Первый код ставит на удаление:
Содержимое папки C:\Users\User\Desktop\TheBatPortable\Data\Mail\ХХХ@MAIL.RU\IMAP
т.е. не ту папку (IMAP). »
Этого не может быть, там жестко прописаны 3 подпапки в папках xxx@mail.ru
Подозреваю, у Вас имеются скрытые папки и/или файлы. Попробуйте вариант:
Если надо чистить только три подпапки: Outbox, Sent, Trash
Код: Выделить весь код
@Echo Off
cls
>nul chcp 1251
	If Not "%~1"=="" Call :MyDel "%~1" "*.*" &Exit /B 0
	Set "BoxIn=C:\Users\User\Desktop\TheBatPortable\Data\Mail"
	For /f "usebackq delims=" %%d In (`2^>nul Dir "%BoxIn%\*@mail.ru" /B /S /A:D`) Do (
		Call :MyDel "%%d\Outbox\" "*.*" ||Exit /B 0
		Call :MyDel "%%d\Sent\" "*.*"   ||Exit /B 0
		Call :MyDel "%%d\Trash\" "*.*"  ||Exit /B 0
	)
Exit /B 0

:MyDel
cls
	If Not Exist "%~1%~2" (Echo ??? Files "%~1%~2" not Found &Pause &Exit /B 0) 
	Dir /W /A:-D "%~1%~2"

	Echo. &Echo Эти файлы будут удалены "%~1%~2" &Echo. 
	Choice /N /C YNX /M "N -Не удалять файлы; Y -Удалить файлы; X -Завершение работы >"
	If %ErrorLevel% EQU 3 Exit /B 2
	If %ErrorLevel% EQU 2 Exit /B 0
	Del /Q /A:R /A:-D "%~1%~2"
Exit /B 0
Если все подпапки папок ХХХ@MAIL.RU
Код: Выделить весь код
@Echo Off
cls
>nul chcp 1251
	
	If Not "%~1"=="" Call :MyDel "%~1" "*.*" &Exit /B 0
	Set "BoxIn=C:\Users\User\Desktop\TheBatPortable\Data\Mail"
	For /f "usebackq delims=" %%d In (`2^>nul Dir "%BoxIn%\*@mail.ru" /B /S /A:D`) Do (
		For /f "usebackq delims=" %%s In (`2^>nul Dir "%%d" /B /A:D`) Do (
			Call :MyDel "%%d\%%s\" "*.*" ||Exit /B 0
		)
	)
Exit /B 0
Если будут проблемы, проделайте в командном окне команду
Код: Выделить весь код
>C:\dir.txt 2>&1 dir /A:D /S /B "C:\Users\User\Desktop\TheBatPortable\Data\Mail"
, файл C:\dir.txt приложите к сообщению

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


Отправлено: 11:10, 14-06-2022 | #42


Ветеран


Contributor


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

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


Вложения
Тип файла: txt я2206141310.bat.txt
(816 байт, 1 просмотров)
Тип файла: txt я22061413.bat.txt
(787 байт, 1 просмотров)
Тип файла: txt ___3.txt
(6.8 Kb, 1 просмотров)
Тип файла: txt ___all.txt
(9.1 Kb, 1 просмотров)
Тип файла: zip Users.zip
(7.92 Mb, 1 просмотров)

4zz, Мы с Вами разговаривали о папках ххх@mail.ru, а реально их больше с разными почтовыми ящиками. Вот слегка изменённые (не принципиально, только для удобства настройки масок файлов и папок)
Жестко прописаны подпапки в папках с сcылкой на почту (с символом @)
Код: Выделить весь код
@Echo Off
cls
>nul chcp 1251
	Set "Fmask=*.*"
	Set "Dmask=*@*.*"
	
	If Not "%~1"=="" Call :MyDel "%~1" "%Fmask%" &Exit /B 0
	Set "BoxIn=C:\Users\User\Desktop\Новая папка\Data\Mail"

	For /f "usebackq delims=" %%d In (`2^>nul Dir "%BoxIn%\%Dmask%" /B /S /A:D`) Do (
		Call :MyDel "%%d\Outbox\" "%Fmask%" ||Exit /B 0
		Call :MyDel "%%d\Sent\" "%Fmask%"   ||Exit /B 0
		Call :MyDel "%%d\Trash\" "%Fmask%"  ||Exit /B 0
	)
Exit /B 0

:MyDel
cls
	If Not Exist "%~1%~2" (Echo ??? Files "%~1%~2" not Found &Pause &Exit /B 0) 
	Dir /W /A:-D "%~1%~2"

	Echo. &Echo Эти файлы будут удалены "%~1%~2" &Echo. 
	Choice /N /C YNX /M "N -Не удалять файлы; Y -Удалить файлы; X -Завершение работы >"
	If %ErrorLevel% EQU 3 Exit /B 2
	If %ErrorLevel% EQU 2 Exit /B 0
	Del /Q /A:R /A:-D "%~1%~2"
Exit /B 0
В папках с сcылкой на почту (с символом @) обрабатываются все подпапки
Код: Выделить весь код
@Echo Off
cls
>nul chcp 1251
	Set "Fmask=*.*"
	Set "Dmask=*@*.*"
	
	If Not "%~1"=="" Call :MyDel "%~1" "%Fmask%" &Exit /B 0
	Set "BoxIn=C:\Users\User\Desktop\Новая папка\Data\Mail"

	For /f "usebackq delims=" %%d In (`2^>nul Dir "%BoxIn%\%Dmask%" /B /S /A:D`) Do (
		For /f "usebackq delims=" %%s In (`2^>nul Dir "%%d" /B /A:D`) Do (
			Call :MyDel "%%d\%%s\" "%Fmask%" ||Exit /B 0
		)
	)
Exit /B 0

:MyDel
cls
	If Not Exist "%~1%~2" (Echo ??? Files "%~1%~2" not Found &Pause &Exit /B 0) 
	Dir /W /A:-D "%~1%~2"

	Echo. &Echo Эти файлы будут удалены "%~1%~2" &Echo. 
	Choice /N /C YNX /M "N -Не удалять файлы; Y -Удалить файлы; X -Завершение работы >"
	If %ErrorLevel% EQU 3 Exit /B 2
	If %ErrorLevel% EQU 2 Exit /B 0
	Del /Q /A:R /A:-D "%~1%~2"
Exit /B 0
Прилагаю батники (переименуйте их из .txt), чтобы не было разночтений, в какой кодировке они написаны.
Прилагаю распечатки работы этих батников.
На всякий случай, архив с Вашей структурой папок и файлами, которые я туда напихал для отладки.
Кстати, один скриншот в Вашем архиве у меня не разархивировался - пишет, что подпорчен.

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


Отправлено: 15:19, 14-06-2022 | #43

4zz 4zz вне форума

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


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

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


megaloman, СПАСИБО!)

Отправлено: 15:55, 14-06-2022 | #44


Аватара для Wu-Tang

Ветеран


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

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


всем привет
писал для себя скрипт для чистки iconcache и thumbcache под win 7-10
Код: Выделить весь код
@echo off

:: Очистить кэш иконок
cd /d "%userprofile%\AppData\Local"
del /f /q /a:-d IconCache*
del /f /q IconCache*
cd /d "%userprofile%\AppData\Local\Microsoft\Windows\Explorer"
del /f /q /a:-d IconCache*
del /f /q /a:-d thumbcache*
del /f /q IconCache*
del /f /q thumbcache*
timeout /t 1
ie4uinit.exe -show
ie4uinit.exe -hide
timeout /t 1
cd /d "%userprofile%\AppData\Local\Microsoft\Internet Explorer"
del /f/q/a *.log
del /f/q/a *.txt

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

:: Очистить кэш иконок
cd /d "%userprofile%\AppData\Local"
del /f /q /a:-d IconCache*
del /f /q IconCache*
cd /d "%userprofile%\AppData\Local\Microsoft\Windows\Explorer"
del /f /q /a:-d IconCache*
del /f /q /a:-d thumbcache*
del /f /q IconCache*
del /f /q thumbcache*
timeout /t 1
ie4uinit.exe -cleariconcache

exit
у меня вопрос, парился с ключами, тк где-то файлы просто скрытые, где-то системные и хотелось, чтобы удаление было со всеми возможными атрибутами.
ключ a:-d нашел в какой-то теме на форуме, но потом встретил, что можно просто /f /q /a
так вот как более правильно или гарантированнее удалятся файлы со всеми возможными атрибутами?

-------
Всему свое время и каждому свой час!
Хочешь жить - умей вертеться!


Отправлено: 09:44, 06-11-2023 | #45


Аватара для YuS_2

Crazy


Contributor


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

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


Цитата Wu-Tang:
ключ a:-d нашел в какой-то теме на форуме »
ключ /a существует для указания атрибутов файлов, но такого атрибута у файлов нет
Код: Выделить весь код
 атрибуты      R  Файлы, доступные только для чтения.
                S  Системные файлы.
                H  Скрытые файлы.
                A  Файлы, готовые для архивирования.
                I  Файлы с неиндексированным содержимым.
                L  Точки повторной обработки.
                O  Автономные файлы
                -  Префикс "-" имеет значение НЕ.

-------
scio me nihil scire. Ѫ

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

Отправлено: 17:13, 06-11-2023 | #46


Ветеран


Contributor


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

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


Wu-Tang,
Цитата Wu-Tang:
хотелось, чтобы удаление было со всеми возможными атрибутами. »
Код: Выделить весь код
	Del Z:\Delete.kuku\*.kuku /A /F
YuS_2, Вы будете смеяться, но я применял ключ /A:-D в предыдущих постах всего лишь год тому назад (инерция мышления, наверное, этот ключ из Dir) и Del работал как задумано!
Для создания файлов для тестирования можно исполнить батник
Код: Выделить весь код
@Echo Off &cls
     2>nul Md Delete.kuku

	cd.>Delete.kuku\h.kuku
	Attrib Delete.kuku\h.kuku +H

	cd.>Delete.kuku\s.kuku
	Attrib Delete.kuku\s.kuku +S

	cd.>Delete.kuku\a.kuku
	Attrib Delete.kuku\a.kuku +A

	cd.>Delete.kuku\r.kuku
	Attrib Delete.kuku\r.kuku +R

	cd.>Delete.kuku\sh.kuku
	Attrib Delete.kuku\sh.kuku +S +H

	Attrib Delete.kuku\*.kuku
Pause
Exit /B

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


Последний раз редактировалось megaloman, 06-11-2023 в 18:07.

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

Отправлено: 18:02, 06-11-2023 | #47


Аватара для YuS_2

Crazy


Contributor


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

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


Цитата megaloman:
Вы будете смеяться, но я применял ключ /A:-D в предыдущих постах всего лишь год тому назад (инерция мышления, наверное, этот ключ из Dir) и Del работал как задумано! »
Да тут ничего смешного нет... вполне возможно, что не задокументировали ключик, т.к. команда должна была быть применима только к файлам. Да и даже если он был унаследован, по каким-то причинам из DIR, то для DEL, он просто не имеет смысла, ведь каталоги не удаляет DEL...
Заморачиваться над исправлением в микрософте просто не стали, т.к. новая оболочка уже в действии, а cmd просто заморозили, хоть и не вырезали пока.

-------
scio me nihil scire. Ѫ


Отправлено: 19:56, 06-11-2023 | #48


Аватара для Wu-Tang

Ветеран


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

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


YuS_2,
да я знаю, что такого ключа в справке нет, но самое интересное, что работает для всех файлов с любыми атрибутами.
megaloman,
вроде пашет на тестовых.
а как мне тогда переписать свои скрипты, так:
Код: Выделить весь код
@echo off

:: Очистить кэш иконок
cd /d "%userprofile%\AppData\Local"
del IconCache* /A /F
cd /d "%userprofile%\AppData\Local\Microsoft\Windows\Explorer"
del IconCache* /A /F
del thumbcache* /A /F
timeout /t 1
ie4uinit.exe -show
ie4uinit.exe -hide
timeout /t 1
cd /d "%userprofile%\AppData\Local\Microsoft\Internet Explorer"
del /f/q/a *.log
del /f/q/a *.txt

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

:: Очистить кэш иконок
cd /d "%userprofile%\AppData\Local"
del IconCache* /A /F
cd /d "%userprofile%\AppData\Local\Microsoft\Windows\Explorer"
del IconCache* /A /F
del thumbcache* /A /F
timeout /t 1
ie4uinit.exe -cleariconcache

exit

-------
Всему свое время и каждому свой час!
Хочешь жить - умей вертеться!


Последний раз редактировалось Wu-Tang, 07-11-2023 в 06:05.


Отправлено: 05:31, 07-11-2023 | #49


Ветеран


Contributor


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

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


Wu-Tang, Насчет ie4uinit.exe не в курсе, но удаление надежнее сделать без CD (не тестировал)
Код: Выделить весь код
@Echo Off &cls
Rem Очистить кэш иконок
	Del "%LOCALAPPDATA%\IconCache*" /A /F
	Del "%LOCALAPPDATA%\Microsoft\Windows\Explorer\IconCache*" /A /F
	Del "%LOCALAPPDATA%\Microsoft\Windows\Explorer\thumbcache*" /A /F
Exit /B

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


Последний раз редактировалось megaloman, 07-11-2023 в 13:19.


Отправлено: 13:08, 07-11-2023 | #50



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Удаление Папки и всех подпапок и файлов sashok60 Скриптовые языки администрирования Windows 16 02-03-2016 08:54
CMD/BAT - [решено] удаление всех файлов и подпапок в нескольких папках alexandri Скриптовые языки администрирования Windows 18 12-01-2010 05:33
CMD/BAT - [решено] Удаление всех папок с одним именем на всех дисках volk1234 Скриптовые языки администрирования Windows 15 13-11-2009 02:13
Удаление всех папок и файлов из папки c:\Temp DIKPro Microsoft Windows NT/2000/2003 10 15-08-2006 16:20
[решено] Удаление всех файлов определенного формата Grub Хочу все знать 4 24-03-2006 12:27




 
Переход