Liste des dossiers dans c:\users [Résolu]

Signaler
Messages postés
173
Date d'inscription
mardi 1 avril 2008
Statut
Membre
Dernière intervention
25 février 2020
-
Messages postés
3
Date d'inscription
jeudi 5 avril 2018
Statut
Membre
Dernière intervention
7 avril 2018
-
Bonjour, je cherche un script pour lister et supprimer les dossiers ( nom du profile ) dans c:\Users\
merci!

2 réponses

Messages postés
42
Date d'inscription
jeudi 10 juillet 2003
Statut
Membre
Dernière intervention
7 novembre 2019
7
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
'**********************************************************************************************

Messages postés
3
Date d'inscription
jeudi 5 avril 2018
Statut
Membre
Dernière intervention
7 avril 2018

Bonjour,

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
Messages postés
14788
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
155
Il te faut gérer les erreurs avec un On Error.
Messages postés
3
Date d'inscription
jeudi 5 avril 2018
Statut
Membre
Dernière intervention
7 avril 2018
>
Messages postés
14788
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 mai 2021

Bonjour @NHenry

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
Messages postés
14788
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
155
Oui, sans passer en admin, de toute façon, tu ne pourras pas lister le dossier/fichier en question, donc si tu ignores l'erreur, tu auras le moins faux possible.
Messages postés
3
Date d'inscription
jeudi 5 avril 2018
Statut
Membre
Dernière intervention
7 avril 2018

Ok @NHenry,

merci pour ces précisions.

J'ai oublié de dire que j'ai remplacé la ligne 9 :

Set RootFolder = fso.GetFolder(Browse4Folder())
par
RootFolder = "C:\Users"

afin d'éviter de parcourir à chaque exécution sur C:\Users (l'exécution de mon script doit se faire de façon automatique et spécifiquement sur ce dossier), mais du même coup j'ai ce problème de permission refusée
Messages postés
14788
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
155
Bonjour,

Merci de garder à l'esprit que CodeS-SourceS est une communauté d'entraide. Toutes les réponses sur le forum sont assurées par des bénévoles qui donnent de leur temps libre pour aider à résoudre les problèmes.

A noter qu'il est expressément demandé aux utilisateurs des forums de faire preuve de respect mutuel dans les discussions. Par conséquent, lors de la demande d'assistance, merci d'être courtois et d'utiliser des formules de politesse, "comme dans la vraie vie" dans des circonstances similaires (dire "bonjour", "s'il vous plaît", "merci", etc...)

A noter également que nous ne faisons pas dans le "tout cuit". Soit tu trouves ton bonheur dans la partie source du site, soit à l'aide de ton moteur de recherche favori. Ici, nous aidons volontiers sur des sujets techniques précis.

http://codes-sources.commentcamarche.net/forum/affich-1557761-bar-sujet-de-pfe-tp-et-autres-devoirs-scolaires#top

http://codes-sources.commentcamarche.net/contents/11-charte-de-commentcamarche-net-conseils-d-ecriture

Merci donc de reformuler ta demande en respectant ces quelques points.