Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

%USERPROFILE%\AppData\Local\Temp - bereinigen


  • Please log in to reply
6 replies to this topic
nett_flanders
  • Members
  • 3 posts
  • Last active: Jun 28 2013 10:26 AM
  • Joined: 26 Nov 2012
Hallo zusammen,

nach weiteren Stunden der Beschäftigung mit AutoHotkey ergibt sich eine zweite Frage.
Ich leere Ordner mit temporären Dateien derzeit mit dem folgenden Script:

;TEMP-Verzeichnisse leeren
#z::
OSD("TEMP-Verz. geleert")
FileRecycle, C:\Windows\Temp\*.*
FileRecycle, C:\Windows\SoftwareDistribution\Download\*.*
;FileRemoveDir, C:\Users\Stefan\AppData\Local\Temp\, 1
;FileRecycle, %USERPROFILE%\Appdata\Local\Temp\*.*
FileRecycle, C:\Users\Stefan\AppData\Roaming\Microsoft\Windows\Recent\*.*
Return

Knackpunkt stellt dabei der temporäre Ordner im Benutzerverzeichnis dar. Dieser lässt sich über keine der beiden oben angeführten und auskommentierten Varianten leeren. Auch die Angabe des absoluten Pfades (egal ob deutsche/englische Varianten) beim Aufruf FileRecycle schafft keine Abhilfe. Über einen Try and Catch Test konnte ich zumindest ermitteln, dass der ErrorLevel jeweils auf 1 gesetzt wird.
Gleiches passiert, wenn ich die Varianten jeweils in eine .exe kompiliere und jene als Administrator starte. Liegt es an dennoch an fehlenden Benutzerrechten, oder nutze ich die falschen Befehle/Wege?
Sämtliche anderen Ordner aus dem oben genannten Beispiel können problemlos geleert werden.

Danke im Voraus!

Gruß
Stefan

SAPlayer
  • Members
  • 403 posts
  • Last active: Apr 11 2014 04:45 PM
  • Joined: 06 Nov 2012
Ich denke, es liegt wirklich an fehlenden Rechten.
Es ist aber wahrscheinlich möglich, alle Dateien/Ordner einzeln zu löschen (durch eine loop sollte das möglich sein).

PS: Der Pfad zu Appdata\Local\Temp ist in AHK die Var A_Temp

fredchf
  • Members
  • 111 posts
  • Last active: Oct 10 2015 02:08 PM
  • Joined: 02 Nov 2012
Hallo!
Für den Temp-Ordner ist eigentlich keine besondere Berechtigung nötig.
Allerdings sind einige Dateien dort natürlich immer gesperrt, weil sie von Prozessen verwendet werden! Das Löschen mit
FileRemoveDir
von Ordnern scheitert dann aber gänzlich, wenn nur eine Datei darin gesperrt ist.
Ich hatte mir vor einiger Zeit dazu mal ein einfaches Script erstellt, vielleicht hilft es weiter...Posted Image
; niO
FileInstall, sad.gif, %A_Temp%\sad.gif, 1
; OK
FileInstall, biggrin.gif, %A_Temp%\biggrin.gif, 1



Gui, Add, Edit, x6 y11 w360 h20 ReadOnly Center vpath, Datei
Gui, Add, Picture, x6 y101 w30 h30 , %A_Temp%\sad.gif
Gui, Add, Picture, x6 y61 w30 h30 , %A_Temp%\biggrin.gif
Gui, Font, s12
Gui, Add, Text, x56 y38 w100 h30 , Dateien
Gui, Add, Text, x+5 y38 w100 h30 , Ordner
Gui, Font,
Gui, Add, edit, x56 y61 w100 +ReadOnly vdel, 0
Gui, Add, edit, x+5 y61 w100 +ReadOnly vdelo, 0
Gui, Add, text, x+5 y61 w100 , gelöscht
Gui, Add, edit, x56 y101 w100 +ReadOnly vsad, 0
Gui, Add, edit, x+5 y101 w100 +ReadOnly vsad2, 0
Gui, Add, text, x+5 yp w100 +ReadOnly, nicht gelöscht
Gui, Add, edit, x18 y+42 w180 +ReadOnly vwkb1, 0

Gui, Add, Button, x6 y+15 w140 h30 +Default gok, &OK
Gui, Add, GroupBox, x6 y140 w200 h45 , frei gewordener Speicher
GuiControl, Hide, ok
Gui, Show, , Tempkiller
wkb = 0
err = 0
erro = 0
count = 0
sad = 5
; --------------------------------nur Dateien----------------------------------------------
Loop, %A_Temp%\*.*, 0, 1
{
GuiControl, , path, %A_LoopFileName%
; Dateien
FileDelete, %A_LoopFileLongPath%
if ErrorLevel <> 0
{
err++
GuiControl, , sad, %err%
Continue
}
count++
GuiControl, , del, %count%
wkb += A_LoopFileSize
GuiControl, , wkb1, % calc_kb(wkb)
Continue
}
; ------------------------------nur Ordner------------------------------------------------
Loop, %A_Temp%\*.*, 2, 1
{

GuiControl, , path, %A_LoopFileName%
FileRemoveDir, %A_LoopFileLongPath%,
if ErrorLevel <> 0
{
erro++
; MsgBox, %A_LoopFileLongPath%
GuiControl, , sad2, %erro%
Continue
}
ordner++
GuiControl, , delo, %ordner%
Continue
}
; ------------------------------------------------------------------------------
GuiControl, , path,
Return
; ------------------------------------------------------------------------------

ok:
GuiClose:
ExitApp

; ------------------------------------------------------------------------------

; ################ Funktion ##################
calc_kb(wievielb, nachkomma = 3) ; Übergabe von Bytes, Nachkommas- Rückgabe dynamisch(bytes,kB,mB,GB)
{
Return (wievielb > 1073741824) ? Round((wievielb / 1073741824), nachkomma) " GB" : ((wievielb > 1048576) ? Round((wievielb / 1048576), nachkomma) " MB" : ((wievielb > 1024) ? Round((wievielb / 1024),nachkomma) " kB" : wievielb . " bytes"))
}


jNizM
  • Members
  • 928 posts
  • Last active: Jan 12 2018 09:23 AM
  • Joined: 01 Aug 2012
Da stimmt aber was mit der Anzeige nicht
Posted Image
[AHK] 1.1.27.04 x64 Unicode | [WIN] 10 Pro (Version 1709)
My GitHub Profile | Donations are appreciated if I could help you

Johnny R
  • Members
  • 54 posts
  • Last active: Sep 18 2015 05:36 AM
  • Joined: 03 Nov 2012
Wenn es nicht unbedingt ein selbstgeschriebenes AHK-Script sein muß, würde ich das kostenlose "CleanTemp" empfehlen, vgl.:
http://www.download-...ware/2022.shtml

jNizM
  • Members
  • 928 posts
  • Last active: Jan 12 2018 09:23 AM
  • Joined: 01 Aug 2012
oder das bekannteste: CCleaner + Winapp2.ini (für mehr Einstellungen)

zum Automatisiertem runterladen der neuesten Version von Winapp2.ini über Autostart:

; ===================================================================================
; AHK Version ...: AHK_L 1.1.09.00 x64 Unicode
; Win Version ...: Windows 7 Professional x64 SP1
; Script ........: autoexec.ahk
; Description ...:
; ===================================================================================

; GLOBAL SETTINGS ===================================================================

#Warn
#NoEnv
#SingleInstance force

; SCRIPT ============================================================================

winapp2 := "http://winapp2.com/Winapp2.ini"
ccl2 := "C:\Program Files\CCleaner\Winapp2.ini"
ccl3 := "C:\Program Files (x86)\CCleaner\Winapp2.ini"

IF (A_OSVersion == "WIN_7") {
IF (A_Is64bitOS) {
RunAs, Administrator
UrlDownloadToFile, %winapp2%, %ccl2%
RunAs
} Else {
RunAs, Administrator
UrlDownloadToFile, %winapp2%, %ccl3%
RunAs
}
}

; EXIT ==============================================================================

ExitApp

; LEGEND ============================================================================


[AHK] 1.1.27.04 x64 Unicode | [WIN] 10 Pro (Version 1709)
My GitHub Profile | Donations are appreciated if I could help you

chef
  • Members
  • 6 posts
  • Last active: Dec 22 2012 08:52 PM
  • Joined: 14 Dec 2012

Wahrscheinlich mußt Du den Computer neustarten. Direkt danach dein Programm aus dem Autostart aufrufen: