Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Писане на код в .bat файл за автоматично изтриване на множество файлове и папки с файлове

Featured Replies

  • Автор

Не изтрива всичко по папките както искам аз, явно има причина за това. Не говоря за процесите които се използват в момента. Има файлове които дори и ръчно не мога да изтрия, но пък ръчно изпразвам всички папки както искам. Ако променя името на скрипта, предполагам трябва да сменя името Goodly в кода на скрипта?

По-късно мога да се включа и аз с моя версия на скрипта.

Мога да драсна и един за FRST. Той не поддържа инструкции по Command Lines, но пък изтрива по-мощно, защото използва други API-та (освен вградените в Win). Но пък след като приключи работата си скрипта автоматично се изтрива, което е малко неприятно.

Тази папка не е правилната - C:\Users\Freeware Sys\Recent

Това в Junction Point / Symbolic Link, който е там за обратна съвместимост и папката е недостъпна.

Правилната е тази:

%userprofile%\AppData\Roaming\Microsoft\Windows\Recent

Между другото изтриването на желаната от теб папка е малко tricky:

Защото изтриването на:

%userprofile%\AppData\Roaming\Microsoft\Windows\Recent

изтрива и подпапките, както ти искаше, но това включва и тази:

%userprofile%\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations

%userprofile%\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations

А това води до изтриване на преките пътища в Quick Access.

Та за там според мен ще е по-добре да се изключи изтриването на подпапките и техните файлове (т.е. без параметър /s) за Recent.

Същото е и за Prefetch папката, защото иначе ще се изтрие и подпапка ReadyBoost. При мен така или иначе тя е празна де, но все пак.

Иначе виж дали нещо подобно ти върши работа.

Но не съм добавял другите опции там за магазина и за flushdns и т.н. Те могат и после.

Разбира се, може да се пипне по-елегантно и да се обединят някои действия сигурно.

В края съм добавил да показва дали се е изтрило всичко успешно или ако не при кои папки ме се е (най-често това е %temp% папката) и може  да се махне.

Разбира се няма да изтрие и файловете отворени от различните приложения. За там се искат допълнителни команди за убиване на съответните процеси по име или PID.

За Elevation може да се добави и nircmd вместо cmd, защото инструмента на nirsoft (nirsofer) е доста по-мощен и други неща. Но честно казано според мен има достатъчно наброй макар и third-party тулове, които вършат по-добра работа тук.

@echo off
if exist "%temp%\log.txt" del "%temp%\log.txt"
for %%g in (
%windir%\Temp
%temp%
) do (
del /a/f/s/q %%g >nul 2>&1
if exist %%g echo.%%~g>>"%temp%\log.txt"
)
for %%g in (
%windir%\Prefetch
%userprofile%\AppData\Roaming\Microsoft\Windows\Recent
) do (
del /a/f/q %%g >nul 2>&1
if exist %%g echo.%%~g>>"%temp%\log.txt"
)
for %%g in (
%windir%\Temp
%temp%
) do (
rd /s/q %%g >nul 2>&1
if exist %%g echo.%%~g>>"%temp%\log.txt"
)
if exist "%temp%\log.txt" ( start notepad "%temp%\log.txt"
) else echo.Deleted Successfully !!
pause

 

  • Автор
преди 4 часа, B-boy/StyLe/ написа:

Тази папка не е правилната - C:\Users\Freeware Sys\Recent

Искаш да кажеш че тази директория не трябва да се трие ?

Кода който си ми дал извежда notepad с описана директория в него C:\Users\FREEWA~1\AppData\Local\Temp

и нищо друго не прави. Даже не можа да започне.

 

@goodlyЕдно предложение и от GPT.

Разбирам, че искате да създадете .bat файл, който да изчиства определени директории, да изпълни някои допълнителни действия и да рестартира компютъра. Внимавайте обаче, този скрипт ще изтрива файлове и папки без възможност за възстановяване, затова бъдете сигурни, че сте направили резервно копие на важните данни преди да изпълните скрипта.

Ето един примерен .bat файл, който изпълнява желаните действия:

```batch
@echo off
:: Проверка за администраторски права
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

:: Ако не стартирате скрипта като администратор, изисква администраторски права
if '%errorlevel%' NEQ '0' (
    echo Не сте стартирали скрипта като администратор.
    echo Моля, стартирайте го като администратор.
    pause
    exit /B
)

:: Изчистване на временни директории
echo Изчистване на временни директории...
rmdir /s /q C:\Windows\Temp
rmdir /s /q "C:\Users\Freeware Sys\AppData\Local\Temp"
rmdir /s /q C:\Windows\Prefetch

:: Изтриване на Recent папката на потребителя Freeware Sys
echo Изтриване на Recent папката...
rmdir /s /q "C:\Users\Freeware Sys\Recent"

:: Изпълнение на wsreset.exe (ако не се затваря, няма проблем)
echo Изпълнение на wsreset.exe...
start /wait wsreset.exe

:: Изпълнение на ipconfig /flushDNS
echo Изпълнение на ipconfig /flushDNS...
ipconfig /flushDNS

:: Рестартиране на компютъра
echo Рестартиране на компютъра...
shutdown /r /f /t 0
```

Този скрипт изпълнява следните действия:

1. Проверява за администраторски права и изисква такива, ако не стартирате скрипта като администратор.
2. Изтрива временни директории и Recent папката.
3. Изпълнява wsreset.exe за ресетиране на Windows Store (ако се затвори след изпълнение, иначе ще се рестартира компютъра).
4. Изпълнява ipconfig /flushDNS за изчистване на DNS кеша.
5. Рестартира компютъра.

Моля, обърнете внимание, че използването на този скрипт е на ваша собствена отговорност и трябва да бъдете сигурни, че сте направили необходимите резервни копия на важните данни.

И едно предложение от мен за папката Prefetch защо просто не изключиш услугата която отговаря за папката prefetch. В win7 услугата е със име super fetch мисля че и в win8 беше със същото име а в по новите версии като win10-win11 е със името sysmain.

преди 33 минути, goodly написа:

Искаш да кажеш че тази директория не трябва да се трие ?

Кода който си ми дал извежда notepad с описана директория в него C:\Users\FREEWA~1\AppData\Local\Temp

и нищо друго не прави. Даже не можа да започне.

При мен почва и трие всичко. А това, което извежда е, че показва, че има остатъчни заключени файлове в папката.

Как да не започва като си почва и свършва за секунди. Ти провери ли съдържанието на папките след почистване да сравниш? :)

И не съм казал, че %userprofile%\AppData\Roaming\Microsoft\Windows\Recent не трябва да се трие.

Казал съм, че подпаките и не трябва да се трият и така съм направил в BAT файла! Трие съдържанието без подпапките САМО за тази папка и за Prefetch.

Нека да четем с разбиране.

А тази хич не я цитирай. Такава папка, както писах няма - C:\Users\Freeware Sys\Recent.

Тя е само за съвместимост със стари приложения.

преди 7 часа, goodly написа:

Не изтрива всичко по папките както искам аз, явно има причина за това. Не говоря за процесите които се използват в момента. Има файлове които дори и ръчно не мога да изтрия, но пък ръчно изпразвам всички папки както искам. Ако променя името на скрипта, предполагам трябва да сменя името Goodly в кода на скрипта?

Еми виж к'во, за да го постна съм го тествал за да видя дали работи. Така си задал папките в мнението. Или бъркаш пътя, или бъркаш нещо синтаксиса, или се опитваш да триеш кеш който се използвам, или нещо със допълнително (остави това като администратор...) пермишънс , разрешенията, свойствата и атрибутите.  Скрипта не случайно се повтаря изтрива зададените папки в уиндолс, файлове подпапки за разлика от други запазва избраните папки заедно с текущите разрешения не ги трие и пре-създава нови. Второто и третото обхождане е специално за избраната/те папка с път "съдържащ празно пространство".

преди 5 часа, B-boy/StyLe/ написа:

Тази папка не е правилната - C:\Users\Freeware Sys\Recent

Ми да вероятно. Би трябвало да има "User" след Users и това е името на твоя акаунт и ти трябва да си го знаеш съответно видиш пътя и промениш.

Не името на скрипта няма нищо общо  goodly.bat както искаш си го записваш. А goodly_folders_to_clear в кода е просто задаване на пътя на папки , можеш да си го смениш както си искаш но трябва да го декларираш със същото във for i del съответно.

преди 37 минути, Deus_Group написа:

Ми да вероятно. Би трябвало да има "User" след Users и това е името на твоя акаунт и ти трябва да си го знаеш съответно видиш пътя и промениш.

Нещо не ме разбра.

Тази папка C:\Users\Freeware Sys\Recent или както е при мен C:\Users\FFreestyleRR\Recent и т.н. НЕ НЕ ПРЕДНАЗНАЧЕНА за манипулация. Провери преди да ме поучаваш.

Това е Junction Point. Прочети какво е това. Много ясно, знам, че се променя пътя до папката (и затова ползвам Environment Varialbles за да не се налага да променям името, защото при тях това става автоматично за всяка една система). Но не е проблема в това. Проблема, че това не е правилната папка!

Image-419.png

Не, че не може да се отключи, но не е правилно да се прави, защото това ще създаде проблеми!

Както казах правилната е %userprofile%\AppData\Roaming\Microsoft\Windows\Recent или алтернативно %APPDATA%\Microsoft\Windows\Recent

https://renenyffenegger.ch/notes/Windows/dirs/Users/username/index

преди 47 минути, B-boy/StyLe/ написа:

Нещо не ме разбра.

Провери преди да ме поучаваш.

 

Кой кого поучава....?!? И ти явно не след като не говорех на теб.  A към goodly специално. Така е дал автора пътят така е зададено.

Мен лично не ме интересува коя папка и къде е точно. Ще си смени пътя за желаното ще пипне малко и това. Ппц %userprofile% отваря въпросния user в users както казах и вече е излишно да го споменавам.

преди 2 часа, B-boy/StyLe/ написа:

А тази хич не я цитирай. Такава папка, както писах няма - C:\Users\Freeware Sys\Recent.

 

преди 2 минути, Deus_Group написа:

И ти явно не след като не говорех на теб. A към goodly специално. Така е дал автора пътят така е зададено.

Мен лично не ме интересува коя папка и къде е точно. Ще си смени пътя за желаното ще пипне малко и това. Ппц %userprofile% отваря въпросния user в users както казах и вече е излишно да го споменавам.

Да ама не. Това бе към мен.

преди 57 минути, Deus_Group написа:

Ми да вероятно. Би трябвало да има "User" след Users и това е името на твоя акаунт и ти трябва да си го знаеш съответно видиш пътя и промениш.

И проблема не е само в User-a след Users. Проблема е, че тази папка е само препратка. И какво като %userprofile% отваря въпросния user в users? Това не поправя пътя до сгрешената папка.
Както и да е.

преди 6 минути, B-boy/StyLe/ написа:

И проблема не е само в User-a след Users. Проблема е, че тази папка е само препратка. И какво като %userprofile% отваря въпросния user в users? Това не поправя пътя до сгрешената папка.
Както и да е.

Отново лично не ме вълнува. Като си изяви желание и нея ще изтрия....

преди 18 часа, B-boy/StyLe/ написа:

Проблема е, че тази папка е само препратка.

Скрипт, даден за почистване съдържанието на Recent от Shawn Brink:

:: Created by: Shawn Brink
:: http://www.tenforums.com
:: Tutorial: http://www.tenforums.com/tutorials/3476-recent-items-frequent-places-reset-clear.html 


del /F /Q %APPDATA%\Microsoft\Windows\Recent\*
del /F /Q %APPDATA%\Microsoft\Windows\Recent\AutomaticDestinations\*
del /F /Q %APPDATA%\Microsoft\Windows\Recent\CustomDestinations\*
taskkill /f /im explorer.exe
start explorer.exe

Reset_and_Clear_Recent_Items.bat

преди 16 минути, цър-вул написа:

Скрипт, даден за почистване съдържанието на Recent от Shawn Brink:

:: Created by: Shawn Brink
:: http://www.tenforums.com
:: Tutorial: http://www.tenforums.com/tutorials/3476-recent-items-frequent-places-reset-clear.html 


del /F /Q %APPDATA%\Microsoft\Windows\Recent\*
del /F /Q %APPDATA%\Microsoft\Windows\Recent\AutomaticDestinations\*
del /F /Q %APPDATA%\Microsoft\Windows\Recent\CustomDestinations\*
taskkill /f /im explorer.exe
start explorer.exe

Reset_and_Clear_Recent_Items.bat

Ами може и така, но аз лично за мен както казах бих махнал AutomaticDestinations и CustomDestinations, защото, както споменах се изтрива Quick Access препратките (или поне при мен се изтриха и се наложи да си върна съдържанието от закачен Image). Иначе моя скрипт си бачка. Явно автора нещо не прави. Щом и скрипта на Deus не сработва при него, може би проблема си е при него.

Ако сам им е променял правата може. По подразбиране нямат такива. При мен нямаше такива и дори моя не се налага да го стартирам с десен бутон и Run as adminisitrator, а дори не съм му добавил auto-elevate. Трие всичко що не е локнато/отворено.

Добавете отговор

Можете да публикувате отговор сега и да се регистрирате по-късно. Ако имате регистрация, влезте в профила си за да публикувате от него.

Гост
Публикацията ви съдържа термини, които не допускаме! Моля, редактирайте съдържанието си и премахнете подчертаните думи по-долу. Ако замените букви от думата със звездички или друго, за да заобиколите това предупреждение, профилът ви ще бъде блокиран и наказан!
Напишете отговор в тази тема...

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.