Jump to content
BulForum.com

Изтриване на много директории, без главната през .bat


jjjjjk

Recommended Posts

Идеята е следната-Създавам чистач за непотребните .temp файлове и директории.

Омръзна ми от бавни чистачи-програми. Реализирам го чрез .bat файл.

Обаче едно нещо ми убягва.

del *.* изтрива всички файлове от директорията, но не и поддиректориите.

rmdir изтрива директорията и поддиректориите.

Аз обаче искам да изтрия всички поддиректории на дадена директория, без да трия самата директория.

Например имам директория C:\Documents and Settings\Administrator\Local Settings\Application Data\Opera\Opera\cache с 4 поддиректории вътре.Обаче утре може да има и още една например, така че не искам да описвам всяка една в .bat файла.

Искам всички поддиректории на C:\Documents and Settings\Administrator\Local Settings\Application Data\Opera\Opera\cache да бъдат изтрити, без самата директория да се пипа.

Същото искам да го направя и за други директории-Temp директориите, в които се създават и файлове и директории от различни програми.

На кратко, трябва ми функционалността на del *.* но за директориите.

Моля да помощ как да реализирам това, тъй като такава команда не знам.

Link to comment
Share on other sites

Извинявай, но del командата не трие директории, до колкото знам.

bat-а ми дотук съм ми е в следният примерен вид

@echo off
CD C:\Documents and Settings\Administrator\Local Settings\Application Data\Opera\Opera\cache\
DEL/Q *.*
CD C:\Documents and Settings\Administrator\Local Settings\Application Data\Opera\Opera\cache\sesn
DEL/Q *.*
CD C:\Documents and Settings\Administrator\Local Settings\Application Data\Opera\Opera\cache\pubsuffix\sesn
DEL/Q *.*
CD C:\Documents and Settings\Administrator\Local Settings\Application Data\Opera\Opera\cache\revocation\sesn
DEL/Q *.* 

Toва обаче изтрива файловете в тези директории, а аз искам да изтрия всичко що е в

C:\Documents and Settings\Administrator\Local Settings\Application Data\Opera\Opera\cache и да помета поддиректориите и файловете вътре. Обаче не искам да трия самата директория Cache, a само поддиректориите й. Не знам как се трият само поддиректории от дадена директория, но не и самата тя.

Не искам да трия целите Temp/Cache директории, за да не си създавам проблеми с програми

П.П2 CMD-то в XP за разлика от Command.com си работи с дългите файлови имена, така че мисля, че няма смисъл да го пиша с къси файлови имена.

Link to comment
Share on other sites

Еми комбинираш DEL и RMDIR де.

Нещо такова:

 

DEL *.* /s /q
FOR /D %%I IN (*.*) DO RMDIR /s %%I

като това е ако се слага в бат файл.

Там уайлдкардите си ги правиш съответно за директорията, която трябва.

Link to comment
Share on other sites

Много време съм ползвал deltree за целта, примерно:

deltree/y %temp%\*.*

Това затрива всичко, но работи само на истински дос, на XP и нагоре май нямаш deltree.com

Link to comment
Share on other sites

Много време съм ползвал deltree за целта, примерно:

deltree/y %temp%\*.*

Това затрива всичко, но работи само на истински дос, на XP и нагоре май нямаш deltree.com

Няма. Има само RD или RMDIR

tedy Благодаря, брато. Нямаше да се сетя скоро :))

А и съм ги позабравил малко нещата...Не пиша често .bat файлове :)

Ще взема да ги припомня, че...

П.П Имам си и един скрипт който ползва RD за изтриване на директориите със всичко в тях и след това за създаване на празна директория със същото име...Но понякога не ми върши работа...

Link to comment
Share on other sites

...

П.П Имам си и един скрипт който ползва RD за изтриване на директориите със всичко в тях и след това за създаване на празна директория със същото име...

Само дето ако въпросната директория има някакви по-специални права, пермишъни, Owner и др., този метод няма да ги възстанови, аз примерно имам стотици директории с кустомизирани пермишъни, без които няма да работят коректно.

 

paagrio, въпросът е принципен. Опера може и да си създаде, но в други ситуации може да е проблем. Номера с цикъла е най-универсален, но пък ако стане грешка или някъде има заключен файл и т.н. (което често става по темп директориите поне при мен), ще почне да се оплаква, освен ако и на RMDIR се сложи едно /Q . За по-качествено изпълнение се пише програмка някаква, подобно на архаичното deltree, което май можеше да се намери и за ХР и нагоре, т.е. такива туулс има в нета бол, само да се потърси.

Link to comment
Share on other sites

Само дето ако въпросната директория има някакви по-специални права, пермишъни, Owner и др., този метод няма да ги възстанови, аз примерно имам стотици директории с кустомизирани пермишъни, без които няма да работят коректно.

 

paagrio, въпросът е принципен. Опера може и да си създаде, но в други ситуации може да е проблем. Номера с цикъла е най-универсален, но пък ако стане грешка или някъде има заключен файл и т.н. (което често става по темп директориите поне при мен), ще почне да се оплаква, освен ако и на RMDIR се сложи едно /Q . За по-качествено изпълнение се пише програмка някаква, подобно на архаичното deltree, което май можеше да се намери и за ХР и нагоре, т.е. такива туулс има в нета бол, само да се потърси.

Именно за това търсех решение. Някои програми просто може да дадат грешки, защото някоя от директориите им я няма. И да, ако директориите са костюмизирани и тръгна да ги трия, губя...

И да, на RMDIR веднага добавих и /Q...Целта е автоматизиран чистач-Click&Clean.

Защо се мъча? Защото дори и специализираните програми не почистват някои места...

А и сканират бааавно...

Eто го и резултатът :))

@echo off
CD C:\Documents and Settings\Administrator\Local Settings\Application Data\Opera\Opera\cache\
DEL *.* /s /q
FOR /D %%I IN (*.*) DO RMDIR /s /q %%I
CD C:\WINDOWS\Temp
DEL *.* /s /q
FOR /D %%I IN (*.*) DO RMDIR /s /q %%I
CD C:\Documents and Settings\Administrator\temp
DEL *.* /s /q
FOR /D %%I IN (*.*) DO RMDIR /s /q %%I
CD C:\WINDOWS\PREFETCH
DEL *.* /s /q
CD C:\Documents and Settings\Administrator\Local Settings\Temp
DEL *.* /s /q
FOR /D %%I IN (*.*) DO RMDIR /s /q %%I
CD C:\Documents and Settings\Administrator\Local Settings\Application Data\Temp
DEL *.* /s /q
FOR /D %%I IN (*.*) DO RMDIR /s /q %%I

Замислям се дали да не използвам универсалните променливи като %ТEMP%, %SystemRoot%, но мисля че няма нужда.

И не знам защо, но предпочитам първо CD и DEL на нещата в директорията вместо направо DEL...

Така съм си свикнал...

П.П Колко начина за запис на едно действие има :blink: Чак сега се замислям... :laughing:

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...