
114298
03.12.2013
BATCH - Dateiname und Erstelldatum auslesen
Hallo zusammen,
ich habe folgendes Problem, vielleicht kann mir einer ja weiterhelfen
Ich möchte die Dateinamen und das Erstellungsdatum aller Dateien im einem Verzeichnis in eine csv datei auslesen.
Mit
dir *Verzeichnis* /b /a-d > *Verzeichnis*
schaffe ich es alle Dateien aufzulisten und mit
for %%f in ("Verzeichnis") do echo %%f: %%~tf > *Verzeichnis
schaffe ich es das Datum und die Uhrzeit von EINER Datei auszulesen allerdings wird hier der Pfad mit ausgegeben was auch nicht sein soll.
Wie schaffe ich es diese beiden zu kombinieren??
Gruß Memo
ich habe folgendes Problem, vielleicht kann mir einer ja weiterhelfen
Ich möchte die Dateinamen und das Erstellungsdatum aller Dateien im einem Verzeichnis in eine csv datei auslesen.
Mit
dir *Verzeichnis* /b /a-d > *Verzeichnis*
schaffe ich es alle Dateien aufzulisten und mit
for %%f in ("Verzeichnis") do echo %%f: %%~tf > *Verzeichnis
schaffe ich es das Datum und die Uhrzeit von EINER Datei auszulesen allerdings wird hier der Pfad mit ausgegeben was auch nicht sein soll.
Wie schaffe ich es diese beiden zu kombinieren??
Gruß Memo
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 223552
Url: https://administrator.de/forum/batch-dateiname-und-erstelldatum-auslesen-223552.html
Ausgedruckt am: 06.04.2025 um 17:04 Uhr
5 Kommentare
Neuester Kommentar
Hallo Memo,
soll das Verzeichnis und alle Unterverzeichnisse rekursiv durchlaufen werden kannst du dies so machen:
Grüße Uwe
REM Codepage ändern damit Umlaute in Dateinamen korrekt übertragen werden
chcp 1252
for %%a IN ("C:\Verzeichnis\*.*") do @echo "%%~nxa";"%%~ta">>CSVDatei.csv
REM Codepage auf Defaultwert setzen
chcp 850
for /R "C:\Verzeichnis" %%a IN (1) do @(for %%b in ("%%~dpa*") DO @(echo "%%~nxb";"%%~tb">>CSVDatei.csv))
Hey, wenn du das Erstelldatum brauchst, sollte
lg.
wmic
verwendet werden, was leider recht langsam ist und bei XP Home erst installiert werden muss (ist ab XP Prof "serienmässig"). Andere hinreichend stabile Methoden hab ich noch nicht gefunden.@ECHO OFF &SETLOCAL
cd /d "%userprofile%"
for /f "tokens=2delims=:" %%a in ('chcp') do set /a mychcp=%%a 2>nul
chcp 1252 >nul
(for /f "delims=" %%a in ('dir /b /a-d') do call:process "%%~fa")>filelist.csv
chcp %mychcp% >nul
type filelist.csv
goto:eof
:process
setlocal
set "fname=%~1"
for /f "tokens=2delims=," %%b in ('wmic path cim_datafile where name^="%fname:\=\\%" get creationdate /format:csv^|find "."') do set "crd=%%b"
echo("%~nx1","%crd:~6,2%.%crd:~4,2%.%crd:~0,4% %crd:~8,2%:%crd:~10,2%:%crd:~12,2%,%crd:~15,4%"
exit /b
Zitat von @114298:
Allerdings wird das Änderungsdatum ausgegeben und nicht das Erstellungsdatum. Ich könnte Wetten, dass das %%~ta
geändert werden muss.
Ah sorry das hatte ich übersehen, dann musst du es anders machen z.B. so wie Endoro schreibt, die verfügbaren Parameter dafür kannst du dir mit Allerdings wird das Änderungsdatum ausgegeben und nicht das Erstellungsdatum. Ich könnte Wetten, dass das %%~ta
geändert werden muss.
for /?
anzeigen lassen:Oder am besten gleich ganz zur Powershell wechseln, dann hast du dieses gehöddel nicht ...
Zusätzlich wurde die Ersetzung von Verweisen auf FOR-Variablen erweitert.
Sie können jetzt folgende Syntax verwenden:
%~I - Expandiert %I und entfernt alle umschließenden
Anführungszeichen (").
%~fI - Expandiert %I zu einem vollständigen Dateinamen.
%~dI - erstellt nur den Laufwerkbuchstaben von %I.
%~pI - erstellt nur den Pfad von %I.
%~nI - erstellt nur den Dateinamen von %I.
%~xI - erstellt nur die Dateierweiterung von %I.
%~sI - erstellter Pfad enthält nur kurze Dateinamen.
%~aI - erstellt die Dateiattribute von %I.
%~tI - erstellt Datum und Zeit von %I.
%~zI - erstellt die Dateigröße von %I.
%~$PATH:I - Durchsucht die in der PATH-Umgebungsvariablen
angegebenen Verzeichnisse und expandiert die erste
gefundene Datei %I zu dem vollständigen Dateinamen.
Wenn der Name der Umgebungsvariablen nicht definiert
ist oder diese Datei bei der Suche nicht gefunden wurde,
wird dieser Parameter zu einer leeren Zeichenfolge
expandiert.
Diese Parameter können auch miteinander kombiniert werden:
%~dpI - erstellt den Laufwerkbuchstaben und Pfad von %I.
%~nxI - erstellt den Dateinamen und die Dateierweiterung von %I.
%~fsI - Expandiert %I zu einem vollständigen Namen, der nur
kurze Dateinamen enthält.
%~dp$PATH:I - Durchsucht die in der PATH-Umgebungsvariablen
angegebenen Verzeichnisse nach %I und erstellt den
Laufwerkbuchstaben und Pfad der ersten gefundenen Datei.
%~ftzaI - Expandiert %I zu einer Zeile, die der Ausgabe des DIR-
Befehls entspricht.