[VBS] Suppression de fichiers dans dossiers

JFO -  
 max -
Voila je débute en VBS et j'ai un petit problème à résoudre.
Imaginons une arborenscence telle que :
[b]RACINE[/b]
|
|__[b]Dossier 1[/b]__[b]Dossier 1.1[/b]__[i]Fichier.exe[/i]
| |
| |__[b]Dossier 1.2[/b]__[i]Fichier.bat[/i]
| | |
| | |__[i]Fichier.msi[/i]
| |
| |__[i]Fichier.exe [/i]
|
|__[b]Dossier 2[/b]__[b]Dossier 2.1[/b]__[i]Fichier.exe[/i]
| |
| |__[i]Fichier.bat[/i]
| |
| |__[i]Fichier.exe [/i]
|
|__[b]Dossier 3[/b]__[b]Dossier 3.1[/b]__[i]Fichier.bat[/i]
| |
| |__[b]Dossier 3.2[/b]__[i]Fichier.exe[/i]
| |
| |__[i]Fichier.msi[/i]
|___________________________________________________
Ce que je dois faire c'est, avec l'aide d'un script, supprimer tous les "Fichier.exe". Mais pour cela je dois parcourir les dossiers, ainsi que leur sous dossiers, puis les sous dossiers des sous dossiers et ainsi de suite.

J'ai trouvé quelques lignes de codes :

[color=green]Dim ObjShell, Afile, Thefiles
The = "C:\Temp\racine"
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set Afolder=FSO.GetFolder(The)
Set TheFiles = Afolder.Files
On Error Resume Next
For Each AFile In TheFiles
Wscript.Echo FSO.GetExtensionName(AFile.Path)
If UCase(FSO.GetExtensionName(AFile.Path)) = "EXE" then
AFile.Delete
End if[/color]

Et des informations : [url]http://www.bellamyjc.net/fr/vbsobjets.html[/url]

Mais je n'ai pas trop d'idée pour réaliser ce script, je pense qu'il faut utiliser des boucles. Je ne sais pas non plus comment il gère la vérification de l'existence d'un dossier afin de reprende sa recherche dans le dossier parent.

Voila j'ai un peu de mal et si quelqu'un peut m'aider je le remercis de tout coeur.
A bientôt
A voir également:

3 réponses

arnauldl
 
La solution à ton problème consiste en un parcours récursif (fonction qui s'appele elle même) des dossiers et sous dossiers :

'------------------------------------------------------------------------------------------------------------------------
racine= "C:\Temp\racine"
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set Afolder=FSO.GetFolder(racine)
effaceExe(Afolder)

function effaceExe(rep)
Set TheFiles = rep.Files
For Each AFile In TheFiles
If UCase(FSO.GetExtensionName(AFile.Path)) = "EXE" then AFile.Delete
next
for each subFolder in rep.SubFolders
effaceExe (subFolder)
next
end function
'------------------------------------------------------------------------------------------------------------------------

Cordialement.
4
max
 
Bonjour,
J'essaye d'adapter ce script pour qu'il cherche dans les dossier et sous dossier la présence d'un fichier et si oui déplacer ce fichier dans un nouveau dossier.
Pourrait tu m'aider ^^ ?
0
Jaggana
 
Super merci :)
1
david81 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour,etant debutant,j'aimerais savoir ce qu'est un fichier temporaire merci
-1
freust
 
C'est un fichier qui n'est pas permanent.
0