
47674
26.01.2009, aktualisiert um 13:22:58 Uhr
VB Script - Dateieigenschaften in Logfile schreiben
Per VBS Dateiname, Zugriffsdatum, Erstelldatum, Änderungsdatum und Dateiname auslesen und in ein Log-File schreiben.
Hallo zusammen,
folgende "Problem":
in einer Windows Ordnerstruktur, das heißt Ordner und mehrere Ebenen von Unterordnern, sind Dateien gespeichert.
Von allen Dateien in dieser sollen mehrere Eigenschaften ausgelesen werden und in jeweils eine Zeile eines Log-Files geschrieben werden:
<Dateiname> <CreationDate> <LastAccessDate> <LastModifiedDate> <FileSize>
Bei jedem ausführen des Scripts soll über den oben genannten Dateieigenschaften eine Zeile mit dem aktuellen Datum eingefügt werden.
Da ich das ganze als nicht in einfachem Batch umsetzbar sehe, habe ich mich für VBS entschieden. Mein Problem: Ich habe keine Ahnung davon! Habe mir per Copy & Paste das ein oder andere zusammen gebastelt, aber funktionieren tut das in keinster Weise.
Kann mir jemand weiterhelfen? Vielleicht gibt es ja ein fertiges Skript, das ich nur noch etwas modifizieren muss...
Vielen Dank und Gruß
daedalus
Hallo zusammen,
folgende "Problem":
in einer Windows Ordnerstruktur, das heißt Ordner und mehrere Ebenen von Unterordnern, sind Dateien gespeichert.
Von allen Dateien in dieser sollen mehrere Eigenschaften ausgelesen werden und in jeweils eine Zeile eines Log-Files geschrieben werden:
<Dateiname> <CreationDate> <LastAccessDate> <LastModifiedDate> <FileSize>
Bei jedem ausführen des Scripts soll über den oben genannten Dateieigenschaften eine Zeile mit dem aktuellen Datum eingefügt werden.
Da ich das ganze als nicht in einfachem Batch umsetzbar sehe, habe ich mich für VBS entschieden. Mein Problem: Ich habe keine Ahnung davon! Habe mir per Copy & Paste das ein oder andere zusammen gebastelt, aber funktionieren tut das in keinster Weise.
Kann mir jemand weiterhelfen? Vielleicht gibt es ja ein fertiges Skript, das ich nur noch etwas modifizieren muss...
Vielen Dank und Gruß
daedalus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 107119
Url: https://administrator.de/forum/vb-script-dateieigenschaften-in-logfile-schreiben-107119.html
Ausgedruckt am: 30.04.2025 um 21:04 Uhr
9 Kommentare
Neuester Kommentar
Hallo daedalus!
Wie definierst Du denn "einfachen Batch"? Fiele folgendes nicht mehr darunter?
Falls es tatsächlich ein VBScript werden soll, bitte Deinen derzeitigen Stand posten ...
Grüße
bastla
Wie definierst Du denn "einfachen Batch"? Fiele folgendes nicht mehr darunter?
@echo off & setlocal
set "Pfad=D:\DeinPfad"
set "Log=D:\Log.txt"
>>"%Log%" echo %date%
for /f "delims=" %%i in ('dir /s /b /a-d "%Pfad%"') do call :ProcessFile "%%i"
goto :eof
:ProcessFile
set "FileName=%~nx1"
set "FileSize=%~z1"
set "LastModifiedDate=%~t1"
for /f "tokens=1,2" %%a in ('dir /tc %1^|findstr /c:"%FileName%"') do set "CreationDate=%%a %%b"
for /f "tokens=1,2" %%a in ('dir /ta %1^|findstr /c:"%FileName%"') do set "LastAccessDate=%%a %%b"
>>"%Log%" echo %FileName%;%CreationDate%;%LastAccessDate%;%LastModifiedDate%;%FileSize%
goto :eof
Grüße
bastla
Moin daedalus,
Moin bastla,
<OT>
ich hätte für diesen "Plan" oder dieses "Konzept" weder eine Zeile Batch noch VBSkript spendiert.
Was soll das denn - bei 100.000 Dateien auf dem untersuchten Dateipfad werden am ersten Tag 100.001 Logzeilen weggemüllt, am 2 Tag auch 100.001 Zeilen, ebenso an 3., 4. usw bis zum n-1ten Tag, an dem die Festplatte langsam Unwucht bekommt.
Geschrieben wird immer der gleiche Umfang, egal ob sich 78% der Daten ändern oder gerade 4 Wochen Werksurlaub sind.
--> Das ist kein Plan.
Vielleicht sollten wir mal eine kleine Diskussion anstossen im Bereich "Entwicklung" zum Thema:
"Könnte es Unterschiede geben zwischen
Manche Montage denke ich schon, es wäre an der Zeit dafür.....
</OT>
Grüße
Biber
Moin bastla,
<OT>
ich hätte für diesen "Plan" oder dieses "Konzept" weder eine Zeile Batch noch VBSkript spendiert.
Was soll das denn - bei 100.000 Dateien auf dem untersuchten Dateipfad werden am ersten Tag 100.001 Logzeilen weggemüllt, am 2 Tag auch 100.001 Zeilen, ebenso an 3., 4. usw bis zum n-1ten Tag, an dem die Festplatte langsam Unwucht bekommt.
Geschrieben wird immer der gleiche Umfang, egal ob sich 78% der Daten ändern oder gerade 4 Wochen Werksurlaub sind.
--> Das ist kein Plan.
Vielleicht sollten wir mal eine kleine Diskussion anstossen im Bereich "Entwicklung" zum Thema:
"Könnte es Unterschiede geben zwischen
- dem automatisierten Mit-Schreiben von Daten,
- dem Sammeln von Informationen,
- dem Aufbau von Wissen und
- dem Fernziel, dem Streben nach Weisheit?"
Manche Montage denke ich schon, es wäre an der Zeit dafür.....
</OT>
Grüße
Biber
Hallo daedalus!
zu A: ) "goto :eof" beendet den Batch, schließt aber nicht die CMD-Shell; in der Zeile 16 (dort hat es eigentlich die Funktion "return from subroutine" ) wär's eigentlich nur nötig, falls Du noch weitere Unterprogramme oder sonstige Batchzeilen unterhalb einfügen wolltest (dient also als Vorsichtsmaßnahme) ...
zu B: ) Kannst Du unter "for /?" (ziemlich am Ende; dort für die Schleifen-Laufvariable %I gezeigt) nachlesen ...
zu C: ) Wenn Du in einer CMD-Shell
eingibst, sollte zu erkennen sein, was in der Schleife gemacht wird (siehe auch "dir /?") - das "findstr" reduziert nur die Ausgabe auf die eine relevante Zeile mit dem Dateinamen (und dem Timestamp) ...
zu D: ) Dass diese Variable als Laufvariable einer "for"-Schleife in einem Batch verwendet wird - bei Eingabe direkt an der Kommandozeile ist nur ein Prozentzeichen erforderlich.
Grüße
bastla
zu A: ) "goto :eof" beendet den Batch, schließt aber nicht die CMD-Shell; in der Zeile 16 (dort hat es eigentlich die Funktion "return from subroutine" ) wär's eigentlich nur nötig, falls Du noch weitere Unterprogramme oder sonstige Batchzeilen unterhalb einfügen wolltest (dient also als Vorsichtsmaßnahme) ...
zu B: ) Kannst Du unter "for /?" (ziemlich am Ende; dort für die Schleifen-Laufvariable %I gezeigt) nachlesen ...
zu C: ) Wenn Du in einer CMD-Shell
dir /tc Datei
zu D: ) Dass diese Variable als Laufvariable einer "for"-Schleife in einem Batch verwendet wird - bei Eingabe direkt an der Kommandozeile ist nur ein Prozentzeichen erforderlich.
Grüße
bastla
Moin daedalus,
die Änderung B, also das Reduzieren auf alle *.lab-Dateien solltest Du selber hinbekommen, wenn Du @bastlas Lesetipps gefolgt bist.
Aus [...'dir /s /b /a-d "%Pfad%"' ..] nun ein [...'dir /s /b /a-d "%Pfad%\*.lab"'...] zu machen, sollte lösbar sein.
Für die Teilfrage A: Poste doch bitte den jetzigen Stand des von Dir angepassten Schnipsels.
Danke
Biber
die Änderung B, also das Reduzieren auf alle *.lab-Dateien solltest Du selber hinbekommen, wenn Du @bastlas Lesetipps gefolgt bist.
Aus [...'dir /s /b /a-d "%Pfad%"' ..] nun ein [...'dir /s /b /a-d "%Pfad%\*.lab"'...] zu machen, sollte lösbar sein.
Für die Teilfrage A: Poste doch bitte den jetzigen Stand des von Dir angepassten Schnipsels.
Danke
Biber