[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

3 réponses

  1. 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
    1. 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
  2. david81 Messages postés 3 Statut Membre
     
    bonjour,etant debutant,j'aimerais savoir ce qu'est un fichier temporaire merci
    -1
    1. freust
       
      C'est un fichier qui n'est pas permanent.
      0