mailto:juliusius37@aol.comslt g un pb avec le script suivant ( c du vbscript)
le probleme se situe ligne ap marqueur ici, la syntaxe est bonne mais le fichier log.tst crée ne contient pas les nom des fichier qu'il devrai contenir, le but etant a cet endroit de recupere le nom des fichiers n'ayant pas ete modifiés depuis plus de 30 jours dans le fichier log
'*************************************************
'Objectif:
'supprimer les fichiers ~*.tmp, ~*.doc et ~*.xls
'figurant dans un dossier et tous ses sous-dossiers
'dont la date de dernière modification est inférieure
'à la date du jour ce sont les fichier temporaire qui
'ne sont pas effacés lorsque le pc plante lors de l'execution
'd'une application access, word.....
'lister les fichier n'ayant pas étés modifiés depuis plus de
'30 jours
'*************************************************
'Ligne de commande:
'c:\....\Nettoyage.vbs <chemin du dossier à traiter>
'Résultat:
'dans le fichier Log.txt, créé dans le dossier de ce script
'1 ligne par fichier traité donnant son chemin complet
'1 ligne donnant le nombre de fichiers traités
'1 ligne donnant le cumul des tailles des fichiers traités
'*************************************************
Dim scriptPath, strExt
Dim fso, fo
Dim tstLog
Dim totSize, fiCount
On error Resume Next
'Lecture de l'argument de la ligne de commande
If WScript.Arguments.Count = 0 Then
WScript.Echo "Manque chemin de départ"
WScript.Echo "Abandon"
WScript.Quit
End If
'Recherche du dossier de départ
Set fso = CreateObject("Scripting.FileSystemObject")
Set fo = fso.GetFolder(WScript.Arguments(0))
If Err.Number <> 0 Then
WScript.Echo "Chemin non trouvé"
WScript.Echo "Abandon"
WScript.Quit
Set fso = Nothing
End If
'Ouverture du fichier Log
scriptPath = Left(WScript.ScriptFullName,Len(WScript.ScriptFullName)-Len(WScript.ScriptName))
Set tstLog = fso.CreateTextFile(scriptPath & "Log.txt",True)
If Err.Number <> 0 Then
WScript.Echo "Création fichier Log impossible"
WScript.Echo "Abandon"
WScript.Quit
End If
'Initialisation des compteurs
totSize = 0
fiCount = 0
'Traitement du dossier de départ
Call ScanFolder(fo)
'Fin du fichier Log
tstLog.WriteLine "Nombre de fichiers temporaire effacés= " & FormatNumber(fiCount,0,False,False,True)
tstLog.WriteLine "Taille de fichiers temporaire effacés= " & FormatNumber(totSize,0,False,False,True)
tstLog.Close
'Fin du traitement
Set fo = Nothing
Set fso = Nothing
WScript.Echo "Terminé"
WScript.Quit
'*** Scan Folder
Sub ScanFolder(fo)
Dim sfo, fi
Dim fiSize, fiPath
Dim dif
'Traitement des fichiers du dossier
For Each fi In fo.Files
'ici pb
dif=datediff("d",date,fi.datelastmodified) if dif>30 then'fin pb
tstlog.writeline (fi.Scriptfullname)
End If
If Left(fi.Name,1) = "~" Then
If fi.DateLastModified < Date Then
strExt = LCase(fso.GetExtensionName(fi.Path))
if strExt = "tmp" Or strExt = "doc" Or strExt = "xls" Then
fiSize = fi.Size
fiPath = fi.Path
fi.Delete
If Err.Number <> 0 Then
tstLog.WriteLine "Suppression impossible pour " & fiPath
Err.Clear
Else
fiCount = fiCount + 1
totSize = totSize + fiSize
tstLog.WriteLine fiPath
End If
End If
End If
End If
Next
'Traitement des sous-dossiers
For Each sfo In fo.SubFolders
Call ScanFolder(sfo)
Next
End Sub