Microsoft MVPs inside





 MCSEboard.de – IT Pro Forum zu Windows Server 2008 R2 / 2008 / 2003 & Windows 7 / Vista / XP
Registrieren Hilfe Regeln Benutzerliste Suchen Heutige Beiträge Alle Foren als gelesen markieren

Windows Forum — Allgemein


Alles zum Thema Windows Clients für den Desktop: Windows 95 / 98 / NT / 2000 / XP / Vista / Win 7 — Q & A zu den Windows Client Versionen sowie Windows Media Center / Windows Home Server


Antwort
     
Themen-Optionen
Alt 18.02.2004, 15:15   #1
Junior Member
 
Benutzerbild von Necrom
 
Offline
Registriert seit: 08-2003
Ort: Hiddenhausen
Beiträge: 97
Frage Dateien und Verzeichnisse auflisten

Hallo

Ich weiss, dass ich hier nicht wirklich im richtigen Forum bin, aber auf die Experten hier ist ja meistens verlass

Ich habe ein kleines Problem: Ich muss mit VB Script von einem Verzeichnis alle Dateien und Unterverzeichnisse auflisten. Also über die Kommandozeile wäre es "dir /s /b" was ich brauche. Zur Not könnte ich das auch so in eine Textdatei schreiben und diese später in VBS auslesen, allerdings gibt es da dann Probleme mit den Umlauten. Hat jemand von euch zufällig den passenden Code zur Hand? Da VBS, naja überhaupt Programmierung, nicht zu meiner größten Stärke gehört wäre ich sehr dankbar...

Gruss Manuel
    Mit Zitat antworten
Alt 18.02.2004, 15:20   #2
Member
 
Benutzerbild von nitro2000de
 
Offline
Registriert seit: 10-2003
Ort: Bremerhaven
Beiträge: 302
Hilft dir evtl das? (is aber nicht VB)
dir /s /b > test
(test ist ein Dateiname in den die Bildschirmanzeige umgelenkt wird)

Signatur
Technischer Informatikassistent
CCCT / CCNT / MCP / Office Master

http://nase.black-entity.de/?Uli

    Mit Zitat antworten
Alt 18.02.2004, 15:23   #3
Junior Member
 
Benutzerbild von Necrom
 
Offline
Registriert seit: 08-2003
Ort: Hiddenhausen
Beiträge: 97
Nein, das gibt ja leider das Problem mit den Umlauten

Es muss also wohl oder übel VB sein, naja, was natürlich auch sauberer ist
    Mit Zitat antworten
Alt 18.02.2004, 15:37   #4
Moderator
 
Benutzerbild von günterf
 
Offline
Registriert seit: 08-2003
Beiträge: 5.103
Hi!

@Necrom

Was hat Deine Frage mit OT zu tun?

http://www.mcseboard.de/rules.php#nr13

Verschiebe nach Windows - Allgemein!

Signatur
Günter

Wissen ist Macht!
Wissen weiter zu geben schafft Lösungen!
Ich grabe gern, aber nur dort wo Erde ist!
www.ServerHowTo.de - Das MCSEboard.de HowTo Projekt ist online!

    Mit Zitat antworten
Alt 18.02.2004, 15:44   #5
Expert Member
 
Benutzerbild von gr@mlin
 
Offline
Registriert seit: 11-2003
Ort: Münsterland
Beiträge: 1.750
hallo,

da hier anscheinend nicht so viele vb-coder sind - such mal auf dieser seite http://www.freevbcode.com .

gruss, gr@mlin

Signatur
#der sinn des lebens ist, den unsinn des lebens zu erkennen.

    Mit Zitat antworten
Alt 18.02.2004, 15:52   #6
Board Veteran
 
Offline
Registriert seit: 08-2003
Ort: Wien
Beiträge: 598
Smile

Hallo Necrom,

da der Code für andere auch interessant sein könnte poste ich ihn mal hier.

Der VB Code listet alle Dateien und Verzeichnisse von C: auf.

Wichtig dabei ist, dass du mit dem Begriff Rekursion etwas anfangen kannst falls du den Code nicht nur benutzen sondern auch verstehen sollst.

Code:


Public Function akt_list_ausgabe (FolderList, Zaehler)

for each Folder in FolderList
if FolderList.Count > 0 then 'falls noch Unterordner existieren
wscript.echo Folder.Path 'aktueller Ordner wird ausgegeben
for each File in Folder.Files
wscript.echo file.name
next
Zaehler = Zaehler + 1
Zaehler = akt_list_ausgabe (Folder.SubFolders, Zaehler) 'Funktion wird erneut mit Unterordnern aufgerufen

end if

if FolderList.Count = 0 then
wscript.echo Folder.Path & " Count: " & FolderList.Count

for each File in Folder.Files
wscript.echo file.name
next
Zaehler = Zaehler + 1
end if
next

akt_list_ausgabe = Zaehler 'Summe der Ordner wird an die jeweilige Instanz der Funktion zurückübergeben
End Function


Dim filesys 'Filesystemobjekt
Dim Drive 'Laufwerk
Dim FolderList 'Ordnerliste von Rootfolder
Dim Zaehler

set filesys = CreateObject ("Scripting.FileSystemObject")
set Drive = filesys.GetDrive("C")
set FolderList = Drive.RootFolder.SubFolders

Zaehler = 0 'Zähler wird initialisiert

Zaehler = akt_list_ausgabe (FolderList, Zaehler)

wscript.echo vbNewLine & vbNewLine & "AUSGABE ABGESCHLOSSEN" & vbNewLine & "Ordneranzahl: " & Zaehler


Falls in der Formatierung hier im Beitrag noch Fehler sind musst du in der Textdatei nachhelfen, aber grundsätzlich funktioniert der Code recht gut. Die Variable Zaehler zählt die Ordner und ist sonst nicht weiter so wichtig.

Hoffe ich konnte helfen.

Gruß
Andi

Geändert von AndiW (18.02.2004 um 16:01 Uhr).

Signatur
Done: MCSA 2000/2003, MCSE 2000/2003, 70-210, 70-215, 70-216, 70-217, 70-218, 70-219, 70-220, 70-292, 70-296, ITIL Foundation V2
In Progress: MSc Information Security Management

    Mit Zitat antworten
Alt 18.02.2004, 16:02   #7
Board Veteran
 
Offline
Registriert seit: 08-2003
Ort: Wien
Beiträge: 598
Hab den Code jetzt noch richtig formatiert sodass du ihn 1:1 in eine Textdatei kopieren und das Script testen kannst.

Gruß
Andi

Signatur
Done: MCSA 2000/2003, MCSE 2000/2003, 70-210, 70-215, 70-216, 70-217, 70-218, 70-219, 70-220, 70-292, 70-296, ITIL Foundation V2
In Progress: MSc Information Security Management

    Mit Zitat antworten
Alt 19.02.2004, 09:24   #8
Junior Member
 
Benutzerbild von Necrom
 
Offline
Registriert seit: 08-2003
Ort: Hiddenhausen
Beiträge: 97
Hallo AndiW

Danke schonmal für den Code. Ist ja aufwendiger als ich erwartet hätte.
Ich habe jetzt nur noch ein Problem: Ich möchte mit der Liste nicht im Rootverzeichnis anfangen, sondern z.B. im Verzeichnis "C:\Test".

Wie muss ich diesen Code (set FolderList = Drive.RootFolder.SubFolders) abändern, damit das klappt?

Vielen Dank schonmal im voraus.

Gruss Manuel

PS: Gibt es irgendwo eine Referenz, wo alle vordefinierten Objekte, wie z.B. "RootFolder" aufgelistet sind?
    Mit Zitat antworten
Alt 19.02.2004, 10:40   #9
Board Veteran
 
Offline
Registriert seit: 08-2003
Ort: Wien
Beiträge: 598
Smile

Hallo Manuel,

Wenn du mit einem Verzeichnis starten willst ersetzt du den Hauptteil des Programmes folgendermaßen

Code:

Dim filesys 'Filesystemobjekt
Dim FolderList 'Ordnerliste
Dim Zaehler

set filesys = CreateObject ("Scripting.FileSystemObject")
set hFolder= filesys.GetFolder("C:\Test")
set FolderList = hFolder.SubFolders

Zaehler = 0 'Zähler wird initialisiert

for each File in hFolder.Files 'Dateien im Startverzeichnis werden ausgegeben
wscript.echo file.name
next

Zaehler = akt_list_ausgabe (FolderList, Zaehler)

wscript.echo vbNewLine & vbNewLine & "AUSGABE ABGESCHLOSSEN" & vbNewLine & "Ordneranzahl: " & Zaehler


Die zusätzliche For Schleife vor dem Aufruf der Funktion dient dazu, dass die Dateien im Startverzeichnis aufgelistet werden, das wird in der Unterfunktion nicht berücksichtigt. Die Funktion akt_list_ausgabe bleibt unverändert.

Schick mir über PN deine Mail, ich schick dir eine Referenz.

Gruß
Andi

Signatur
Done: MCSA 2000/2003, MCSE 2000/2003, 70-210, 70-215, 70-216, 70-217, 70-218, 70-219, 70-220, 70-292, 70-296, ITIL Foundation V2
In Progress: MSc Information Security Management

    Mit Zitat antworten
Antwort


Themen-Optionen


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
2K3R2 - Alles Dateien eines Besitzers auflisten wilgin Windows Server Forum 1 20.05.2010 08:25
vbs Alle Dateien aus Verzeichnis auflisten Dr Kiffer Windows Forum — Scripting 2 03.07.2009 14:14
Doppelte Verzeichnisse und Dateien SAM1 Windows Server Forum 1 19.10.2006 15:01
Dateien in Baumstruktur auflisten zero_cold Windows Forum — Allgemein 6 12.04.2006 08:23
Netzwerkproblem bei Auflisten von vielen Dateien theroot Windows Forum — LAN & WAN 2 01.02.2004 22:21


Alle Zeitangaben in MEZ/CET. Es ist jetzt 08:14 Uhr. Seite generiert in 0,039 Sekunden.

- Unsere Partner -

Copyright © 2000 – 2012 MCSEboard.de

Sprung zum Seitenanfang