Voici un vbscript général (ListSubFolders.vbs) pour parcourir un dossier afin de lister tous ses sous-dossiers dans un fichier texte, donc inspirez-vous de ce dernier, et complétez-le afin d'atteindre votre objectif.
Bonne Chance à vous !
Option Explicit
Dim fso,ws,RootFolder,LogFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set ws = CreateObject("WScript.Shell")
LogFile = Left(Wscript.ScriptFullName, InstrRev(Wscript.ScriptFullName, ".")) & "txt"
If fso.FileExists(LogFile) Then
fso.DeleteFile(LogFile)
End If
Set RootFolder = fso.GetFolder(Browse4Folder())
Call ListSubFolders(RootFolder)
ws.run DblQuote(LogFile)
'**********************************************************************************************
Sub ListSubFolders(Folder)
Dim Subfolder
Set Folder = fso.GetFolder(Folder)
For Each Subfolder in Folder.SubFolders
Call WriteLog(Subfolder.Path)
Call ListSubFolders(Subfolder.Path) 'Call Recursive Sub
Next
End Sub
'**********************************************************************************************
Sub WriteLog(strText)
Dim fs,ts,LogFile
Const ForAppending = 8
LogFile = Left(Wscript.ScriptFullName, InstrRev(Wscript.ScriptFullName, ".")) & "txt"
Set fs = CreateObject("Scripting.FileSystemObject")
Set ts = fs.OpenTextFile(LogFile,ForAppending,True)
ts.WriteLine strText
ts.Close
End Sub
'**********************************************************************************************
Function Browse4Folder()
Dim objShell,objFolder,Message
Message = "Please select a folder in order to scan into it and its subfolders"
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(0,Message,1,"c:\Programs")
If objFolder Is Nothing Then
Wscript.Quit
End If
Browse4Folder = objFolder.self.path
end Function
'**********************************************************************************************
Function DblQuote(Str)
DblQuote = Chr(34) & Str & Chr(34)
End Function
'**********************************************************************************************
9 avril 2015 à 21:17
Modifié le 5 avril 2018 à 23:49
je suis toujours admiratif des scripts que propose Hackoo et celui-ci en fait partie, malheureusement l'utilisation sur le dossier C:\Users me retourne une erreur "Permission refusée"... Y aurait-il un moyen pour exécuter ce script sans passer par le bypass manuel de l'UAC ?
> Ce script me serait bien utile mais en automatisant son exécution sur le dossier C:\Users
Merci d'avance,
Stéphane
6 avril 2018 à 18:13
Modifié le 6 avril 2018 à 20:40
merci pour la réponse rapide.
Si tu penses à "On Error resume next", il me semble que cela permet uniquement d'ignorer l'erreur en cours sans planter le script, mais du même coup cela exclut l'item concerné (dans mon cas C:\Users), je me trompe ?
Note : Cette erreur apparaît sur certaines de mes machines, indépendamment de l'OS (W7, W10) et du réglage de l'UAC
6 avril 2018 à 21:54