Voila un petit code sans pretention qui plairas au fous de bench disque et fous de securité.
en fait ce code permet d'ecrire d'effacer tout trace des fichier effacer auparavant.
oui car lorsque l'on suprime un fichier dans windows, celui n'est pas totalement effacer du disque dur. ceci effaceras donc toute trace des fichier suprimmé.
En prime dans l'interface pour faire patienté, j'ai ajouter un petit moniteur qui affiche les debits disque en ecriture. Donc grace a ca on peut connaitre la vitesse en ecriture des disque dure de sont ordinateur.
il y a 2 debit afficher, le temp reel et la moyenne.
Source / Exemple :
'////////////////////////////////////////////////////////////////////////////
'// $File : Netoyeur.vbs
'// $Author : Bernard Denis <denis@sim-land.com>
'// $WebSite : http://microtips.dyndns.org
'// $Description: Script d'eciture a null de l'espace libre des disque dure pour effacer
'// les traces de fichier supprimer
'//
'////////////////////////////////////////////////////////////////////////////
'// $Release : 1.0
'// $Date : 9 novembre , 2004
'//
'////////////////////////////////////////////////////////////////////////////
'// $Release : 1.1
'// $Comments : Ajout de fonction de bench des debits en ecriture du disque.
'// $Date : 17 janvier , 2005
'//
'////////////////////////////////////////////////////////////////////////////
Set oBrowserActi = CreateObject("InternetExplorer.Application") ' creation instance de IE
iniActivity(oBrowserActi) ' ouverture de IE ( pour affichage de l'activité)
'declaration des constante pour la gestion des fichier
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
Dim fso, d, dc, s, n
Set fso = CreateObject("Scripting.FileSystemObject") ' creation de l'instance de la gestion du system de fichier
Set dc = fso.Drives 'recuperation des disque de l'ordinateur
For Each d in dc ' pour chaque disque
If d.DriveType = 2 Then ' si disque et un disque dur
s = d.DriveLetter ' recuperer la letre de lecteur
sizefree = ShowFreeSpace(s) ' calculer l'espace disque disponible avec en parametre la letre de lecteur
cleandisk sizefree,s ' lancement du netoyage du disque en question avec pour paramtere, la letre de lecteur et la taille libre
End If
Next
closeActivity (oBrowserActi)'fin du script
'fonction de calcul de l'espace libre disponible sur le disque demander
Function ShowFreeSpace(ByVal letter)
Dim fso, d, s,drvPath
Set fso = CreateObject("Scripting.FileSystemObject") ' creation de l'instance de la gestion du system de fichier
drvPath = letter & ":\ " ' definition du lecteur
Set d = fso.GetDrive(fso.GetDriveName(drvPath)) ' capture du lecteur
ShowFreeSpace = FormatNumber(d.FreeSpace, 0) 'renvois l'espace dispo en octet
End Function
Function cleandisk(byval sizefree, byval driveletre)
AffActivity "Demarrage disque " & driveletre ,""
randomize 'initialisation d'une valeur aleatoire
If (fso.FileExists(driveletre & ":\cleanfile.existepas"))Then 'test si le fichier temporaire existe et si oui le suprime
Set f_rep = fso.getfile(driveletre & ":\cleanfile.existepas")
f_rep.delete(true)
wscript.sleep 200
Set f_rep = nothing
End If
fso.CreateTextFile (driveletre & ":\cleanfile.existepas") ' creation du fichier temporaire
Set f_rep = fso.getfile(driveletre & ":\cleanfile.existepas")
Set ts_rep = f_rep.OpenAsTextStream(ForWriting, TristateUseDefault) 'ouverture du fichier temporaire
On Error Resume Next
sizefree = replace(sizefree," " ,"", 1 ,-1) ' remplace les espace dans la taille de l'espace libre par des vide ( car certain poste definisse cette valeur avec des espace)
sizefree = Int(sizefree ) ' redefinition de l'espace libre en tant de valeur entiere
ligne = Chr(255 * rnd) ' definition du premier octet avec une valeur aleatoire compris dans la table ASCII de 255 caractere
boucleleng = 65536 ' definition de la taille des mot ecrit
wshshell = CreateObject("wscript.shell")
pourcent = sizefree / 100 'definition du rapport de poucentage en fonction de l'espace libre
For i=0 To boucleleng 'creation du mot en fonction de la taille definie avant.
ligne = ligne & Chr(255 * rnd) ' mot ecrit avec des valeur aleatoire ( comme le premiere octet )
Next
depart = timer ' point de depart qui permet de calculer le temp d'activité
laptime = timer ' point de controle pour calculer le debit du disque
For i = 1 To sizefree step boucleleng ' boucle d'ecriture du fichier temporaire
ts_rep.write(ligne) 'ecriture des mots dans le fichier temporaire
If (j * boucleleng ) > pourcent Then ' si on a ecrit 1 pourcent du fichier on va generer un affichage de l'activité ecouler
fait = i / 1024 / 1024 ' calcul du nombre de mo ecrit
tempecouler = timer - depart ' calcul du temp ecouler depuis le depart
instant = timer - laptime ' calcul du temp ecouler depuis le dernier pourcent realiser
debit = formatnumber(fait / tempecouler ,2) 'calcul de la moyenne des debits disque
debitreel = formatnumber( ((((j * boucleleng) /1024) /1024) / instant),2) ' calcul du debit en temp reel
activity = formatnumber(i/sizefree * 100,0) & "%" ' calcul du pourcentage actuel
AffActivity "disque " & driveletre & " <br>avancement :",activity & "<br>debit moyen = "& debit & " Mo/s<br>debit actuel = "&debitreel &" Mo/s" ' affichage du poucentage, debit moyent et debit temp reel
j = 0
laptime = timer' re definition du point de controle
End If
j =j +1
Next
'ecriture du debit moyen realiser
fait = i / 1024 / 1024
tempecouler = timer - depart
debit = formatnumber(fait / tempecouler ,2)
AffActivity "disque :"& driveletre & " Terminé " , "<br> debit moyen = " &debit
ts_rep.close ' fermeture du fichier temporaire
wscript.sleep 2000 ' pause de 2 seconde pour laisser le temp au system de bien fermer le fichier
f_rep.delete(true) ' supression du fichier temporaire
End Function
'fonction qui va definire l'interface d'affichage d'internet explorer.
Function iniActivity (byref oBrowserActi)
With oBrowserActi
.Width = 250
.Height = 120
.Left = 80
.Top = 0
.Resizable = false
.StatusBar = false
.MenuBar = false
.AddressBar = false
.ToolBar = false
.Visible = true
.Navigate "about:blank"
wscript.sleep 500
End With
oBrowserActi.Document.WriteLn "<HTML><HEAD><TITLE>netoyage en cour</TITLE></HEAD><BODY bgcolor=#ffffD0>" 'ecriture de la couleur de fond de la fenetre de log
End Function
' fonction qui va afficher les message en faisant un refresh a chaque passage
Function AffActivity(byVal STitle, byVal sMsg)
oBrowserActi.refresh
oBrowserActi.Document.WriteLn "<HTML><HEAD><TITLE>netoyage en cour</TITLE></HEAD><BODY bgcolor=#ffffD0>"
oBrowserActi.Document.WriteLn "<FONT size=2 FACE=""Arial"" color=black>" & sTitle & sMsg
End Function
'fonction qui va fermer internet explorer
Function closeActivity(byref oBrowsers)
obrowsers.quit
End Function
Conclusion :
ce script n'ayant etait tester que sur de la NTFS, il est possible qu'il ne fonctionne pas corectement sur de la FAT car il genere un fichier unique de la taille libre sur la partition.
une prochaine version est deja prevue avec une progress bar a la place du poucentage. et un ajout d'un graphique final pour recapituler l'espace libre des disques et les moyenne de debit de disque par contre j'ai pas de delai sur quand je pourait faire cette addon
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.