goodbytes
Goto Top

Dateien in Unterverzeichnissen auflisten mit Attributen

Hallo,
ich habe sehr viele Dateien in einem Ordner mit vielen Unterordnern.
Per Batch oder vbs oder vba aus Excel heraus möchte ich alle Ordner durchlaufen lassen und einige Attribute der Datei (Wann zuletzt gespeichert, von wem) in einer txt oder xls auflisten. Hintergrund ist, dass die ursprünglichen Dateinamen und die Ursprüngliche Ordnerstruktur nicht mehr existiert, da es sich um wiederhergestellte Daten handelt.

Per Batch könnte ich die Ordner ja so durchlaufen und dann mittels Call in eine Unterfunktion springen.
FOR /F "delims=*" %%A IN ('dir /b /s *.jpg') do Call [Sprungziel] "%%A"  

Wie könnte ich das möglichst einfach hinbekommen, eventuell auch nur nach bestimmten Dateitypen suchen?
Vielleicht hat da schon mal jemand sowas gebraucht?

Danke schon mal im Voraus!
LG Torsten

Content-ID: 274576

Url: https://administrator.de/contentid/274576

Ausgedruckt am: 22.11.2024 um 04:11 Uhr

114757
Lösung 114757 15.06.2015, aktualisiert am 18.06.2015 um 10:01:30 Uhr
Goto Top
Moin,
zum Abfragen von erweiterten Dateieigenschaften (von wem gespeichert) gibt es hier eine Funktion:
Erweiterte Dateieigenschaften mit Powershell-Funktion abfragen
Damit kannst du auch gleichzeitig andere Eigenschaften der Dateien auflisten, und dann auch gleich mit export-csv in einer CSV-Datei speichern.

Gruß jodel32
TsukiSan
Lösung TsukiSan 16.06.2015, aktualisiert am 18.06.2015 um 10:01:26 Uhr
Goto Top
Hallo TorstenB,

Mit VBS kann man so diverse Dateieigenschaften auslesen:
Dim DateiPfad

DateiPfad = "'C:\\Test.log'"  


strComputer = "."  
Set objWMIService = GetObject("winmgmts:" _  
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")  

Set colFiles = objWMIService.ExecQuery _
    ("Select * from CIM_Datafile Where name = " & DateiPfad)  

For Each objFile in colFiles
    'WScript.Echo "MD5Checksum: " & objFile.MD5Checksum  
    Wscript.Echo "Access mask: " & objFile.AccessMask  
    Wscript.Echo "Archive: " & objFile.Archive  
    Wscript.Echo "Compressed: " & objFile.Compressed  
    Wscript.Echo "Compression method: " & objFile.CompressionMethod  
    Wscript.Echo "Creation date: " & objFile.CreationDate  
    Wscript.Echo "Computer system name: " & objFile.CSName  
    Wscript.Echo "Drive: " & objFile.Drive  
    Wscript.Echo "8.3 file name: " & objFile.EightDotThreeFileName  
    Wscript.Echo "Encrypted: " & objFile.Encrypted  
    Wscript.Echo "Encryption method: " & objFile.EncryptionMethod  
    Wscript.Echo "Extension: " & objFile.Extension  
    Wscript.Echo "File name: " & objFile.FileName  
    Wscript.Echo "File size: " & objFile.FileSize  
    Wscript.Echo "File type: " & objFile.FileType  
    Wscript.Echo "File system name: " & objFile.FSName  
    Wscript.Echo "Hidden: " & objFile.Hidden  
    Wscript.Echo "Last accessed: " & objFile.LastAccessed  
    Wscript.Echo "Last modified: " & objFile.LastModified  
    Wscript.Echo "Manufacturer: " & objFile.Manufacturer  
    Wscript.Echo "Name: " & objFile.Name  
    Wscript.Echo "Path: " & objFile.Path  
    Wscript.Echo "Readable: " & objFile.Readable  
    Wscript.Echo "System: " & objFile.System  
    Wscript.Echo "Version: " & objFile.Version  
    Wscript.Echo "Writeable: " & objFile.Writeable  
Next

Msgbox "Fertig"  

Das ganze vielleicht in eine unktion gepackt und in einer Schleife, die alle Dateinamen aus Ordnern und
Unterordnern auflistet entsprechend die Dateieigenschaften auslesen.

Eventuell gibt dir das einen Anstoß für dein kleines Projekt.

Gruß

Tsuki
colinardo
Lösung colinardo 16.06.2015, aktualisiert am 18.06.2015 um 10:01:26 Uhr
Goto Top
Hallo zusammen,
Das ganze vielleicht in eine unktion gepackt und in einer Schleife, die alle Dateinamen aus Ordnern und Unterordnern auflistet entsprechend die Dateieigenschaften auslesen.
Solch ein Script findest du schon hier, einfach an die gewünschten Eigenschaften angepasst, feddich:
VB Script gesucht um Videodateien auslesen zu können.

Grüße Uwe
goodbytes
goodbytes 18.06.2015 um 10:06:37 Uhr
Goto Top
Hallo,
vielen Dank für eure Hilfe! face-smile

Mit der Powershell ist es natürlich auch möglich, in diesem Fall wollte ich es aber gerne mit vbs machen.
Ich habe jetzt colinardos Lösung genommen - funktioniert perfekt.

Ich wünsche euch noch einen schönen Tag!

Gruß
Torsten