Jump to content

VBS: Ordnerstruktur nur bis erste Ebene auslesen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

Hallo!

 

Ich hatte mal so ein tolles Script welches mir einen angegeben Ornder und die erste Ebene an Unterordner ausgelesen hat. Nur ich finde es nicht mehr und auch nicht im Netz! :-(

 

Nochmal im Detail: Ich habe den Ordner X im Script angegeben. Er schreibt mir den Ordnernamen "X" inkl. Pfad in eine TXT Datei. Anschließend geht es an die Unterordner. Diese schreibt er mir auch brav mit Pfad in eine TXT Datei. Diese Unterordner haben noch mehrere weitere Unterordner, aber die sollen nicht in die TXT Datei geschrieben werden!

 

Hat da jmd zufällig ne Funktion zur Hand? Ich bekomme es eben nur hin, dass er komplett alles ausliest.

 

Merci im voraus!

Geschrieben

Hey blob,

 

versuchs doch mal hiermit.

 

Dim objFSO, objUnterordner, objFolder, strLogFile, objLogFile
Const ForWriting = 2
strLogFile = "dir_log.txt" 'Log File in welches geschrieben wird

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\Windows") 'Verzeichnis welches Durchsucht wird.

If objFSO.FileExists(strLogFile) Then

  set objLogFile = objFSO.OpenTextFile(strLogFile, ForWriting, true)

Else

  objFSO.CreateTextFile(strLogFile)
  set objLogFile = objFSO.OpenTextFile(strLogFile, ForWriting, true)

End If

objLogFile.WriteLine objFolder.path

For each objUnterordner In objFolder.SubFolders

 objLogFile.WriteLine objunterordner.path

Next



 

Gruß

 

Danny

Geschrieben

Hallo again,

 

sorry, habe mich etwas **** ausgedrückt. Ich habe ja schon den Pfad des Ordners, dessen Unterordner ich bis zur 2ten Ebene listen will. Also alle Subfolders von (z.B.) C:\Windows und dann wiederrrum deren Subfolders. Haben nun diese Subfolders wiederum weitere Subfolders, sollen die nicht ins Logs geschrieben werden, also alles bis zur zweiten Ebene meinte ich :-) Hat da jmd eine Function o. Sub, mit der ich die Ebene bestimmen kann?

 

Trotzdem Danke für den Code!

Geschrieben

dann ggf. so ;)

 

Dim objFSO, strLogFile, objLogFile
Const ForWriting = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")

strLogFile = "dir_log.txt" 'Log File in welches geschrieben wird

If objFSO.FileExists(strLogFile) Then

  set objLogFile = objFSO.OpenTextFile(strLogFile, ForWriting, true)

Else

  objFSO.CreateTextFile(strLogFile)
  set objLogFile = objFSO.OpenTextFile(strLogFile, ForWriting, true)

End If

read_two_subfolders "C:\Windows",objLogFile, 0

objLogFile.close


function read_two_subfolders(strFolderPath, objLogFile, intCounter)
On error Resume Next 'Falls Zugriff Verweigert etc...
Dim objUnterordner, objFolder

if intCounter < 2 then

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(strFolderPath) 'Verzeichnis welches Durchsucht wird.


For each objUnterordner In objFolder.SubFolders

 objLogFile.WriteLine objunterordner.path

 read_two_subfolders objunterordner.path ,objLogFile, intCounter + 1
Next

End if

End Function

 

Gruß

 

Danny

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...