jjjjjk Posted April 24, 2010 Share Posted April 24, 2010 Идеята е следната-Създавам чистач за непотребните .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 More sharing options...
zaq Posted April 24, 2010 Share Posted April 24, 2010 @echo off del %temp%\..\..\recent\. /s/q del %SystemRoot%\Prefetch\. /s/q del %temp%\. /s/q del %systemroot%\temp\. /s/q del %temp%\..\tempor~1\. /s/q Link to comment Share on other sites More sharing options...
jjjjjk Posted April 24, 2010 Author Share Posted April 24, 2010 Извинявай, но 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 More sharing options...
tedy Posted April 24, 2010 Share Posted April 24, 2010 Еми комбинираш DEL и RMDIR де. Нещо такова: DEL *.* /s /q FOR /D %%I IN (*.*) DO RMDIR /s %%I като това е ако се слага в бат файл. Там уайлдкардите си ги правиш съответно за директорията, която трябва. Link to comment Share on other sites More sharing options...
Overdrive Posted April 24, 2010 Share Posted April 24, 2010 Много време съм ползвал deltree за целта, примерно: deltree/y %temp%\*.* Това затрива всичко, но работи само на истински дос, на XP и нагоре май нямаш deltree.com Link to comment Share on other sites More sharing options...
jjjjjk Posted April 24, 2010 Author Share Posted April 24, 2010 Много време съм ползвал deltree за целта, примерно: deltree/y %temp%\*.* Това затрива всичко, но работи само на истински дос, на XP и нагоре май нямаш deltree.com Няма. Има само RD или RMDIR tedy Благодаря, брато. Нямаше да се сетя скоро А и съм ги позабравил малко нещата...Не пиша често .bat файлове Ще взема да ги припомня, че... П.П Имам си и един скрипт който ползва RD за изтриване на директориите със всичко в тях и след това за създаване на празна директория със същото име...Но понякога не ми върши работа... Link to comment Share on other sites More sharing options...
paagrio Posted April 24, 2010 Share Posted April 24, 2010 добре де какъв е проблема да изтриеш самата директория cache, нали после опера сама ще си я създаде когато и потрябва Link to comment Share on other sites More sharing options...
tedy Posted April 24, 2010 Share Posted April 24, 2010 ... П.П Имам си и един скрипт който ползва RD за изтриване на директориите със всичко в тях и след това за създаване на празна директория със същото име... Само дето ако въпросната директория има някакви по-специални права, пермишъни, Owner и др., този метод няма да ги възстанови, аз примерно имам стотици директории с кустомизирани пермишъни, без които няма да работят коректно. paagrio, въпросът е принципен. Опера може и да си създаде, но в други ситуации може да е проблем. Номера с цикъла е най-универсален, но пък ако стане грешка или някъде има заключен файл и т.н. (което често става по темп директориите поне при мен), ще почне да се оплаква, освен ако и на RMDIR се сложи едно /Q . За по-качествено изпълнение се пише програмка някаква, подобно на архаичното deltree, което май можеше да се намери и за ХР и нагоре, т.е. такива туулс има в нета бол, само да се потърси. Link to comment Share on other sites More sharing options...
jjjjjk Posted April 24, 2010 Author Share Posted April 24, 2010 Само дето ако въпросната директория има някакви по-специални права, пермишъни, 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... Така съм си свикнал... П.П Колко начина за запис на едно действие има Чак сега се замислям... Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.