spreader
Goto Top

erstelldatum und -uhrzeit einer datei anzeigen

Hallo zusammen,

Kann ich mit einer Batchdatei alle Dateien mit Erstelldatum und Uhrzeit anzeigen?

zum Beispiel:
im Ordner ABC sind folgende Dateien:

Name Erstellt am

beispiel.txt 13.05.08 17:08
beispiel2.txt 13.05.08 17:10
beispiel3.txt 12.05.08 13:43
beispiel4.txt 13.05.08 18:50


Die Batch sollte dann zB folgendes anzeigen:

"Im Ordner ABC sind folgende Dateien:

beispiel.txt 13.05.08 17:08
beispiel2.txt 13.05.08 17:10
beispiel3.txt 12.05.08 13:43
beispiel4.txt 13.05.08 18:50"

Content-Key: 87584

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

Printed on: April 16, 2024 at 13:04 o'clock

Member: Biber
Biber May 14, 2008 at 17:16:37 (UTC)
Goto Top
Moin spreader,

zumindest das Wesentliche dieser Ausgabe würde eine Zeile dieser Art leisten.
[Demo am CMD-Prompt]
for /f "tokens=1,2,3,*" %a in ('dir "X:\ABC\*.*" /a-d /-c /tc^|find "."') do @echo %d %a %b  
Wobei die Ausgabe NICHT wie eine Tabelle aussieht, da die Dateinamen in der Praxis sehr unterschiedliche Längen haben und Name, Datum und Uhrzeit (%d %a %b) immer nur durch ein Leerzeichen getrennt werden.

Zur Weiterverarbeitung z.b. in einer CSV-Datei ist das akzeptabel, zum Lesen am Bildschirm grauenhaft.
Probiers aber ruhig aus.
Wenn Du die Ausgabereihenfolge wieder auf "Datum, Uhrzeit, Dateiname" drehst (%a %b %c) ist es optisch gefälliger.

Als Batchdatei ZeigDir.cmd mit einem Pflichtparameter pfad könnte es so aussehen:
::----------snipp ZeigDir.cmd parameter1=[Lw:\]verzeichnis
@echo Im Ordner %1 sind folgende Dateien: 
@for /f "tokens=1,2,3,*" %%a in ('dir "%~1\*.*" /a-d /-c /tc^|find "."') do @echo %%d %%a %%b  

Grüße
Biber
Member: Biber
Biber May 15, 2008 at 04:56:48 (UTC)
Goto Top
Nachtrag:

Weil bestimmt noch von irgendwem die Anmerkung kommt, dass der über ein normales "DIR"-Kommando hinausgehende Informationsgehalt gegen Null tendiert und es von daher aller Dönekens wäre..... stimmt schon. Aber mit einer kleinen konzeptionellen Änderung lässt sich damit etwas Neckisches machen.
Ich könnte doch nämlich auch (was ein DIR so nicht kann) Erstellungs- und Änderungsdatum (Created/Modified) nebeneinanderstellen.
Oder mir nur die Dateien anzeigen lassen, die nachbearbeitet wurden.

Demo am CMD-Prompt:
(= 6:52:56  D:\temp=)
>for /f "tokens=1,2,3,*" %a in ('dir "x.*" /a-d /-c /tc^|find "."') do @if "%a %b" NEQ "%~td" @echo %a %b %~td %d  
19.10.2007 00:03 04.04.2008 12:59 x.bat
19.02.2008 23:45 01.04.2008 22:18 x.txt
04.04.2008 13:00 15.04.2008 18:26 x.vbs

Das ist insofern ganz informativ, weil (probiert es mal aus) einem sofort viele Dateien ins Auge springen, bei denen das Änderungsdatum vor dem Erstellungsdatum liegt...
Was allerdings in gewisser Weise logisch ist.. obwohl ich auch erst zweimal hingucken musste.

Da es für diese Art Anzeige nötig ist, in das anzulistende Verzeichnis zu wechseln ist im Batch folgende Anpassung nötig:
::----------snipp ZeichDir.cmd parameter1=[Lw:\]verzeichnis
@pushD "%~1"  
@echo Im Ordner %1 sind folgende Dateien: 
@echo Erstellt         Geändert         Name 
@for /f "tokens=1,2,3,*" %%a in ('dir *.* /a-d /-c /tc^|find "."') do @echo %%a %%b %%~td %%d  
@PopD
[ungetestet und ohne das IF NEQ/nur geänderte Dateien]

Grüße
Biber