Jeg prøver lave et lille script som løber en mappe igennem, og tæller hvor mange filer/undermapper der er og skrive det til en fil. Jeg kunne godt tænke mig at hvis jeg prøver at "scanne" en mappe f.eks. c:\test, at den så returnerer en liste over alle mapper i c:\test i første niveau, og hvor mange filer/underbiblioteker der er ialt.
Så hvis jeg har en struktur der ser sådan her ud C:\Test \Temp \SubTemp1 \Temp2 \SubTemp3 Så skulle programmet returnere
Temp , antal subdirs, antal filer Temp2, antan subdirs, antal filer
Jeg har prøvet at lave det rekursivt, men kan ikke få den til at stoppe rekursionen rigtigt, så jeg får info på alle mapper, og ikke kun mapper i 1 niveau :( Her er koden jeg har skrevet indtil videre.
Dim DirFolder, filecount sStartPath = "h:\bruger\ace"
set oShell = CreateObject("WScript.Shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")
sLog = "log.txt"
Set f = oFSo.CreateTextFile(sLog, True)
ListFolders(sStartPath)
Sub ListFolders(sPath) Set oFolder = oFSO.GetFolder(sPath)
Værsgod..... Lidt klodset sat sammen, men det kniber med tiden :o)
Const Forappending = 8 logfil = "c:\log.txt" strFolder = InputBox("Indtast stien, der skal listes","Check folder","C:\test") Set objFSO = CreateObject("Scripting.FileSystemObject") Set fi = objFSO.OpenTextFile(logfil, ForAppending, true) Set objFolder = objFSO.GetFolder(strFolder) Set colFiles = objFolder.Files ShowSubFolders(objFolder) Sub ShowSubFolders(objFolder) Set colFolders = objFolder.SubFolders For Each objSubFolder In colFolders Set nyfunk = objFSO.GetFolder(objSubFolder) For Each folderopt In nyfunk.SubFolders folderantal = folderantal + 1 Next
Set colFiles = objSubFolder.Files count = 0 For Each objFile In colFiles count = count + 1 Next strtekst = objSubFolder.Path & " Antal filer:" & count & " Antal mapper:" & folderantal fi.WriteLine (strtekst) ShowSubFolders(objSubFolder) Next End Sub Set fi = Nothing
Det ovenstående giver nogenlunde det samme som mit eget script, altså noget i stil med:
C:\Miranda IM\Icons Antal filer:6 Antal mapper:1 C:\Miranda IM\Icons\Original Gangsta Antal filer:1 Antal mapper:2 C:\Miranda IM\Icons\Original Gangsta\9x, ME, 2000 Antal filer:15 Antal mapper: C:\Miranda IM\Plugins\Plugins Antal filer:4 Antal mapper:
Hvor det gerne kun skulle liste foldere 1 niveau ned. Som her C:\Miranda IM\Icons Antal filer ialt :xx Antal mapper ialt :xx C:\Miranda IM\Plugins Antal filer:xx Antal mapper:xx
Den skal stadigt tælle alle filer/mapper, men den skal kun liste 1 undermappe, i loggen.
Så hvis jeg har f.eks en bruger mappe på serveren, med en mappe pr bruger, så skal den gerne kunne liste brugerens "hovedmappe" og så fortælle hvor mange mapper/filer der ialt i ALLE underbiblioteker under hovedmappen
Aaarh .. Det kunne være jeg skulle læse hele indlægget før jeg begynder, at jappe noget af :o)
Jeg må tilbage til tegnebrædtet ;)
/Killer
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.