Bonjour
je me permets de sollicité votre aide pour mon scipt.
Situation : nous avons rencontrons des probleme d'espace disque sur des vieux postes XP.
la solution de faire le menage des fichiers Temp.
voici mon script
seulement je ne comprends pas pourquoi dans les répertoires, je n'arrive pas à les vider complétement.
quand je mets FileGetAttrib "D" tous les répertoires se supprime
mais que je mets FilGetAttrib "R,A,H,D,T,S" plus rien ne se supprime.
alors que lorsque je mets FileGetAttrib "R,A,H" des fichiers se supprime.
j'ai testé chaque bloqué séparement
car au finale je compile pe script pour faire un .exe qu'on execute en masse sur tout les postes avec un espace disque
inférieur à 500Mo.
Merci par avance de votre aide
► Afficher le texte
Code : Tout sélectionner
;==============================================
; Suppression des Fichiers/ Dossiers
; TEMP, $NtUninstall ...
;Creer par
; date de création :
; Version 1.0
;==============================================
#include <File.au3>
#RequireAdmin
; Suppression des fichiers $NtUninstallKB
Local $regKey
Local $DirList = _FileListToArray(@WindowsDir, "$Nt*$", 2)
If IsArray($DirList) Then
For $i = 1 To $DirList[0]
$file = @WindowsDir & "\" & $DirList[$i]
DirRemove($file, 1)
$regKey = StringRegExpReplace($DirList[$i], "\$NtUninstall*.*)\$", "$1" )
RegDelete("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & $regKey)
FileDelete(@WindowsDir & "\" & $regKey & ".log")
Next
EndIf
; Suppression des repertoires Domwnload des mises à jour Windows
Local $DownloadList2 = _FileListToArray(@windowsDir & "\SoftwareDistribution\Download", "*.*")
If IsArray($DownloadList2) Then
For $i = 1 To $DownloadList2[0]
$file = @windowsDir & "\SoftwareDistribution\Download\" & $DownloadList2[$i]
If StringInStr(FileGetAttrib($file) , "D") Then
DirRemove($file, 1)
Else
FileDelete($file)
EndIf
Next
EndIf
; Suppression des repertoires dans Internet temporary files \Content de l'utilisateur courant
; repertoire Content
Local $ContentList = _FileListToArray (@UserProfileDir & "\Local Settings\Temporary Internet Files\Content", "*.*")
If IsArray ($ContentList) Then
For $i = 1 to $ContentList [0]
$file = @UserProfileDir & "\Local Settings\Temporary Internet Files\" & $ContentList[$i]
if StringInStr (FileGetAttrib($file), "D") Then
DirRemove ($file, 1)
Else
FileDelete($file)
EndIf
Next
EndIf
; répertoire Content IE5
Local $ContentList2 = _FileListToArray (@UserProfileDir & "\Local Settings\Temporary Internet Files\Content.IE5")
If IsArray ($ContentList2) Then
For $i = 1 to $ContentList2 [0]
$file = @UserProfileDir & "\Local Settings\Temporary Internet Files\Content.IE5\" & $ContentList2[$i]
if StringInStr (FileGetAttrib($file), "D") Then
DirRemove ($file, 1)
Else
FileDelete($file)
EndIf
Next
EndIf
; répertoire Local Setting Temp
Local $ContentList3 = _FileListToArray (@UserProfileDir & "\Local Settings\Temp")
If IsArray ($ContentList3) Then
For $i = 1 to $ContentList3 [0]
$file = @UserProfileDir & "\Local Settings\Temp\" & $ContentList3[$i]
if StringInStr (FileGetAttrib($file), "R,A,H,S,D,T") Then
DirRemove ($file, 1)
Else
FileDelete($file)
EndIf
Next
EndIf
; Suppression dans le Temp de l'utilisateur courant
local $Tempfile = _FileListToArray ("C:\Temp")
if IsArray ($tempfile) Then
for $i= 1 to $tempfile [0]
$file = "C:\Temp"
if StringInStr (FileGetAttrib ($file),"R,A,H,D,T,S")Then
DirRemove ($file,1)
Else
FileDelete ($file)
EndIf
Next
EndIf
; Suppression dans le répertoire Temp de Windows
local $Tempfile = _FileListToArray (@WindowsDir & "\temp")
if IsArray ($Tempfile) Then
for $i= 1 to $Tempfile[0]
$file = @WindowsDir & "\temp\" & $tempfile[$i]
if StringInStr (FileGetAttrib($file),"R,A,H,S,D,T" )Then
DirRemove ($file,1)
Else
FileDelete ($file)
EndIf
Next
EndIf
; Suppresion des cookies de l'utilisateur courant
local $Tempfile = _FileListToArray (@UserProfileDir & "\Cookies")
if IsArray ($tempfile) Then
for $i= 1 to $tempfile [0]
$file = @UserProfileDir & "\Cookies\" & $tempfile [$i]
if StringInStr (FileGetAttrib($file),"R,A,H,S,D,T")Then
DirRemove ($file,1)
Else
FileDelete ($file)
EndIf
Next
EndIf
;Vidage de la corbeil
FileRecycleEmpty('')
MsgBox(0,"Supp Temp", "Fin du script")
; fin du script