Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Ordnerstruktur Script mit Logfile!

Frage Entwicklung

Mitglied: chrizz-at

chrizz-at (Level 1) - Jetzt verbinden

08.09.2008, aktualisiert 10.09.2008, 5176 Aufrufe, 9 Kommentare

Hallo, ich bin neu hier und brauche unbedingt eure Hilfe!
Ich habe ein Script erstellt welches von einem angegeben Ordner die Unterordner und Dateien (Name und Größe) in eine Logdatei schreibt.
Nur die Dateinamen in den Unterordnern werden nicht geschrieben, ich weis nicht wie ich das einbinden kann.

Ich hoffe Ihr könnt mir helfen!

lg chris

Dim Ordnername, oFile

Ordnername = "C:\AddOn2"

Set fso = CreateObject("Scripting.FileSystemObject")

' Log Datei erstellen
Set oFile = fso.OpenTextFile("C:\" & Date() & ".log",8,true)

' Referenz auf ein Verzeichnis holen
Set Verzeichnis = FSO.GetFolder(Ordnername)

' Ausgabe in Protokoll
oFile.WriteLine "Kopierte Daten vom " & Now()
oFile.WriteLine "-- Dateien:"

' Alle Dateien
For Each Datei In Verzeichnis.Files
oFile.WriteLine "--> " & Datei.Name & " || Größe: " & Round(Datei.Size/1024,2) & " Kilobytes"
Next
oFile.WriteLine " "
oFile.WriteLine "-- Ordner:"

' Alle Unterverzeichnisse
For Each UnterVerzeichnis In Verzeichnis.SubFolders
oFile.WriteLine "--> " & UnterVerzeichnis.Name & " || Größe: " & Round(UnterVerzeichnis.Size/1024,2) & " Kilobytes"
Next
For Each Datei in Unterordner.Files
oFile.WriteLine "--> " & Datei.Name & " || Größe: " & Round(Datei.Size/1024,2) & " Kilobytes"
Next
oFile.WriteLine " "
oFile.WriteLine " "
oFile.WriteLine " "
oFile.Close
Mitglied: Iwan
08.09.2008 um 14:23 Uhr
hallo,

ich hab mich mal dran probiert und nach langem hin und her ein (nicht ganz saubere) Lösung gefunden:
01.
Function GetSubFolders(Pfad)  
02.
  Set Verzeichnis = FSO.GetFolder(Pfad)  
03.
  Set UnterVerzeichnis = Verzeichnis.SubFolders 
04.
  'On Error Resume Next  
05.
  For Each Ordner In UnterVerzeichnis  
06.
     WriteLog2 Ordner 
07.
     GetSubFolders Ordner.Path 
08.
  Next  
09.
End Function 
10.
 
11.
Function WriteLog1(Pfadangabe) 
12.
  Dim Ordnername, oFile 
13.
  Set oFile = FSO.OpenTextFile("C:\" & Date() & ".log",8,true) 
14.
  Set Ordner = FSO.GetFolder(Pfadangabe) 
15.
 
16.
  oFile.WriteLine "Kopierte Daten vom " & Now() 
17.
  oFile.WriteLine " " 
18.
 
19.
  oFile.WriteLine "-> " & Ordner.Name & " || Größe: " & Round(Ordner.Size/1024,2) & " Kilobytes" 
20.
  For Each Datei In Ordner.Files 
21.
    oFile.WriteLine "|-> " & Datei.Name & " || Größe: " & Round(Datei.Size/1024,2) & " Kilobytes" 
22.
  Next 
23.
  oFile.WriteLine " " 
24.
  oFile.Close 
25.
End Function 
26.
 
27.
Function WriteLog2(Ordner) 
28.
  Dim Ordnername, oFile 
29.
  Set oFile = FSO.OpenTextFile("C:\" & Date() & ".log",8,true) 
30.
  Set Ordner = FSO.GetFolder(Ordner) 
31.
 
32.
  oFile.WriteLine "-> " & Ordner.Name & " || Größe: " & Round(Ordner.Size/1024,2) & " Kilobytes" 
33.
  For Each Datei In Ordner.Files 
34.
    oFile.WriteLine "|-> " & Datei.Name & " || Größe: " & Round(Datei.Size/1024,2) & " Kilobytes" 
35.
  Next 
36.
  oFile.WriteLine " " 
37.
  oFile.Close 
38.
End Function 
39.
 
40.
Set FSO = CreateObject("Scripting.FileSystemObject")  
41.
' HIER DEN ORDNER ANGEBEN !! 
42.
Pfadangabe = "C:\Windows\Temp" 
43.
' HIER DEN ORDNER ANGEBEN !! 
44.
WriteLog1 Pfadangabe 
45.
GetSubFolders Pfadangabe
Bitte warten ..
Mitglied: bastla
08.09.2008 um 14:28 Uhr
Hallo chrizz-at und willkommen im Forum!

Abgesehen davon, dass Du Dich zwischen den Variablennamen "UnterVerzeichnis" (Zeile 25) und "UnterOrdner" (Zeile 28) entscheiden solltest, kann das nur klappen, wenn die Behandlung der "UnterOrdner.Files" ebenfalls in einer Schleife stattfindet - dazu das "Next" aus Zeile 27 unter das "Next" aus Zeile 30 verschieben.

Grüße
bastla

P.S.: Wenn Du Dein Script beim Posten zwischen < code>< /code>-Tags platzierst (natürlich ohne die Leerzeichen), lassen sich die genannten Zeilennummern viel leichter zuordnen ...

P.P.S.: Falls Du nicht nur die erste Unterverzeichnis-Ebene dokumentieren willst, benötigst Du eine Rekursion - siehe dazu die oben geposteten Scripts.
Bitte warten ..
Mitglied: bastla
08.09.2008 um 14:41 Uhr
@Iwan

Mein Ansatz sähe ähnlich aus:
01.
Ordnername = "C:\AddOn2" 
02.
 
03.
Set fso = CreateObject("Scripting.FileSystemObject") 
04.
 
05.
' Log Datei erstellen 
06.
Set oFile = fso.OpenTextFile("C:\" & Date & ".log",8,true) 
07.
 
08.
' Referenz auf ein Verzeichnis holen 
09.
Set Verzeichnis = fso.GetFolder(Ordnername) 
10.
 
11.
' Ausgabe in Protokoll 
12.
oFile.WriteLine "Kopierte Daten vom " & Now 
13.
 
14.
'Rekursion starten 
15.
DoFolders Verzeichnis 
16.
 
17.
'Log abschließen 
18.
oFile.WriteBlankLines 3 
19.
oFile.Close 
20.
 
21.
Sub DoFolders(V) 
22.
oFile.WriteLine "-- Ordner: " & V.Path 
23.
oFile.WriteLine "--> " & V.Name & " || Größe: " & Round(V.Size/1024,2) & " Kilobytes" 
24.
 
25.
' Alle Dateien 
26.
For Each Datei In V.Files 
27.
	oFile.WriteLine "--> " & Datei.Name & " || Größe: " & Round(Datei.Size/1024,2) & " Kilobytes" 
28.
Next 
29.
oFile.WriteLine 
30.
 
31.
' Alle Unterverzeichnisse 
32.
For Each UnterVerzeichnis In V.SubFolders 
33.
	DoFolders UnterVerzeichnis 
34.
Next 
35.
End Sub
Grüße
bastla

[Edit] Ausgabe der Ordnergröße ergänzt [/Edit]
Bitte warten ..
Mitglied: Iwan
08.09.2008 um 14:57 Uhr
Dein Ansatz sieht natürlich wesentlich "eleganter" aus, aber beide führen zum Ziel
Bitte warten ..
Mitglied: bastla
08.09.2008 um 16:51 Uhr
@Iwan

"Sparsamer" trifft's vielleicht eher (ich habe einfach die Extraschleife für die Dateien im Ausgangsordner eingespart); letztlich sehe ich es aber eigentlich so wie Du: nicht der Weg ist hier das Ziel ...

Grüße
bastla
Bitte warten ..
Mitglied: Iwan
09.09.2008 um 07:50 Uhr
kurze Frage noch dazu:
kriegt man da irgendwie noch tausender Punkte mit rein?
Bitte warten ..
Mitglied: bastla
09.09.2008 um 08:29 Uhr
Hallo Iwan!

kriegt man da irgendwie noch tausender Punkte mit rein?
Wenn ohnehin nicht mehr mit den Ergebnissen gerechnet wird, kann auch gleich noch das Runden mit "FormatNumber()" erledigt werden:
01.
FormatNumber(Datei.Size/1024,2)
Die Darstellung mit Tausenderpunkten ist in der obigen Schreibweise von den Einstellungen der Systemsteuerung übernommen - um die Tausendertrennzeichen zu erzwingen:
01.
FormatNumber(Datei.Size/1024,2,,,True)
Grüße
bastla
Bitte warten ..
Mitglied: Iwan
09.09.2008 um 09:52 Uhr
super, klappt einwandfrei und sieht besser aus, danke
Bitte warten ..
Mitglied: chrizz-at
10.09.2008 um 09:47 Uhr
Ich danke euch recht herzlich! funktioniert einwandfrei!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Script zum Auflösen einer Ordnerstruktur und zurück gesucht
Frage von websolutionsBatch & Shell12 Kommentare

Hallo miteinander. Ich bin auf der Suche nach einem Script, welches alle Dateien einer Ordnerstruktur in einen "Arbeitsordner" kopiert/verschiebt ...

Tipps & Tricks
Script bzw. Tool zum Echtzeitmonitoring von Logfiles
Frage von JackAppleTipps & Tricks6 Kommentare

Ich suche nun seit knapp einer Woche wie ein Irrer durchs Netz und verzweifel so langsam. Ich brauche ein ...

Batch & Shell
Ordnerstruktur lesen, Dateien - Neue Ordnerstruktur
gelöst Frage von internet2107Batch & Shell7 Kommentare

Ich verzweifle etwas an folgender Sache. Ich habe eine vorgebene Ordnerstruktur, in der sich Dateien befinden. Diese Dateien sollen ...

Rechtliche Fragen
Vernatwortlichkeit Ordnerstruktur
gelöst Frage von PeterzRechtliche Fragen5 Kommentare

Ich habe eine Frage zur Dateiablage innerhalb einer Firma. In der Regel werden jegliche Daten in einer Ordnerstruktur auf ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 21 StundenApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 1 TagWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 1 TagWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement16 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...