savmaz
Goto Top

Datei Erstellungsdatum per Batch ändern

Hallo,

zuerstmal grosses Lob an diese Community hier, die umfangreichen Beiträge haben mir hier schon sehr oft weitergeholfen, nun stehe ich aber leider vor einem Problem, wo ich wirklich nirgends mehr etwas gefunden habe, deshalb meine Frage an alle Batch Script Experten:

Wie (ich frage nicht bewusst "ob", da ich weiß, dass alles geht - die Frage ist nur WIE ;) ) kann man per Batch das Erstellungsdatum von Dateien ändern??

Hintergrund:
Habe einen Autoradio mit USB Anschluss angeschafft - nun ist dieses Teil so schlau und sortiert sowohl Ordner als auch Dateinamen nach Erstellungsdatum, nicht nach Name....
Ich möchte nun auf dem schnellst möglichen weg eine Datenmenge von 8GB MP3´s (d.h. sehr viele, kleinere Files - keine großen wenigen!) das Erstellungsdatum einer Alphabetischen Sortierung anpassen. Für die Ordner-Sortierung habe ich bereits ein funktionierendes Batch, siehe weiter unten - jedoch werden damit dann die Files im Ordner teilweise noch immer nicht richtig sortiert, falls eben nicht in alphabtischer Reihenfolge raufkopiert. Folgende Varianten habe ich ausprobiert:

- Div Tools zum ändern des Erstellungsdatums (TotalCommander, QuickAttrib, etc) ändern zwar die Files, jedoch nicht die Folder (die Funktion Folder Datum ändern gibt es zwar, im Root Verzeichnis am PC wird auch das korrekte (geänderte Datum) angezeigt, wenn man jedoch z.B. mit Total Commander ins Verzeichnis wechselt, werden die ".." noch immmer mit dem originalen Datum/Zeit angezeigt
--> daher unbrauchbar, der Autoradio sortiert nur die Dateien in Ordnern, jedoch nicht die Ordner

- mein Batch: es wird einfach jedes Verzeichniss (es gibt immer nur max 1 Ordner ohne Unterordner im Root!) umbenannt, dann der ein neuer Ordner mit Originalem Namen erstellt und die Files zurückverschoben
--> das ist schon brauchbarer, da nun wenigstens die Ordner richtig sortiert sind, die Files darin eben aber noch nicht

- Alles einfach in alphabetischer Reihenfolge neu auf den USB Stick kopieren
--> funktioniert, dauert aber viiieeeel zu lange face-sad

- eine Kombination aus den ersten beiden Varianten ist möglich und funktioniert, jedoch zu umständlich (es sollte wenn geht auch meine komplett PC unerfahrene Frau bedienen können), außerdem bevorzuge ich die elganteren Lösungen ;)

und falls es hilft, mir steht eigentlich überall Vista zur Verfügung, daher also stehen auch die evtl. neuen zusätzlichen (erweiterten) Commandline-Tools zur Verfügung!!

Achja, hier noch mein Ansatz von Batch-Lösung:

@echo off

set USBDrive=d:\test

if exist "%USBDrive%\re_sort_temp" rmdir "%USBDrive%\re_sort_temp" /S /Q

for /f "delims= tokens=1" %%i in ('dir %USBDrive% /O:N /B') do (
ren "%USBDrive%\%%i" "re_sort_temp"
md "%USBDrive%\%%i"
move "%USBDrive%\re_sort_temp\*.*" "%USBDrive%\%%i"
rmdir "%USBDrive%\re_sort_temp" /S /Q
)

bin für jeden Tipp/Vorschlag offen - leider kann ich nur Batch-Skript, VB wäre aber sicher auch eine Möglichkeit....

Grüße
Andi

Content-Key: 101950

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

Printed on: April 25, 2024 at 07:04 o'clock

Member: Janni
Janni Nov 16, 2008 at 20:26:49 (UTC)
Goto Top
Kein Batch, aber Google liefert: http://www.snapfiles.com/get/timestamptoucher.html
Member: bastla
bastla Nov 16, 2008 at 20:49:44 (UTC)
Goto Top
Hallo SavMaz und willkommen im Forum!

Ändere das "move" in ein "copy" und nachfolgendes "del" - dadurch wird (siehe Beschreibung von NTFS-Datums- und Zeitstempeln für Dateien und Ordner - auch für FAT-Partitionen) das Erstellungsdatum der Datei geändert.

Kopieren musst Du zwar immer noch, aber das lässt sich ja automatisieren, und, da es sich um kleinere Dateien handelt, musst Du auch nur soviel freien Speicherplatz haben, wie die größte Datei benötigt.
Alternativ könntest Du ein Commandline-"touch"-Tool suchen ...

Grüße
bastla
Member: SavMaz
SavMaz Nov 16, 2008 at 21:16:43 (UTC)
Goto Top
Hallo bastla,
Hallo Janni,

danke für die schnelle antwort - habe das mal mit touch erweitert, leider ändert der nur das zugriffsdatum - der player braucht aber das erstelldatum
Kennst du vielleicht ein ähnliches tool, welches auch auf das Erstelldatum greift??

Copy ist schon klar, besser sogar mit xcopy, aber das möchte ich erst als allerletzte Möglichkeit in Betracht ziehen face-wink

das Tool im Link von Janni hatte ich schon probiert, habe schon sämtliche Google-Freeware Tools probiert und bei allen oben genanntes Problem - es werden zwar die Attribute (auch in der "Eigenschaften" Anzeige von Win) richtig angezeigt bzw. gesetzt, nur erkenne ich den Grund, warum das dem Player egal ist, nur im WinCommander, wenn ich eben in den Ordner hinein wechsle, steht nur noch oben bei ".." noch das originale Datum - und (was auch immer das für ein Stamp sein soll) dürfte das Autoradio lesen....

Achja, für die, die es interessiert bzw. brauchen können, poste ich hier meine Erweiterung mit Touch.exe (einfach googeln und ins Windows\system32 kopieren!):

@echo off

set USBDrive=d:\test

if exist "%USBDrive%\re_sort_temp" rmdir "%USBDrive%\re_sort_temp" /S /Q

for /f "delims= tokens=1" %%i in ('dir %USBDrive% /O:N /B') do (
ren "%USBDrive%\%%i" "re_sort_temp"
md "%USBDrive%\%%i"
move "%USBDrive%\re_sort_temp\*.*" "%USBDrive%\%%i"
rmdir "%USBDrive%\re_sort_temp" /S /Q
)

for /f "delims=\ tokens=3,4" %%j in ('dir "%USBDrive%" /O:N /B /S') do touch "%USBDrive%\%%j\%%k"
Member: bastla
bastla Nov 16, 2008 at 21:25:01 (UTC)
Goto Top
Hallo SavMaz!

Ich meinte nicht das "klassische" "touch", sondern Tools (wie zB Attribute Changer), mit denen jeder der 3 Timestamps auf einen beliebigen Wert gesetzt werden kann - allerdings natürlich mit Steuerung per Commandline ...

... wenn Du die aber auch schon alle durch hast, fällt mir auch nix anderes mehr ein ...

Grüße
bastla
Member: SavMaz
SavMaz Nov 16, 2008 at 22:06:00 (UTC)
Goto Top
Hallo bastla,

hab mir den Attribut Changer angeschaut - den hatte ich noch nicht, aber das ist nur eine Shell Extension, kann nur leider keine Steuerung per Commandline finden - bist du sicher, dass das Tool sowas bieten soll?

Die Shell Extension arbeitet mit bereits beschriebenen Problem, jedoch bei Files wär´s ja ok, wenn ich´s jetzt noch irgenwie per commandline aufrufen könnte....

lg
Andi
Member: bastla
bastla Nov 16, 2008 at 22:14:11 (UTC)
Goto Top
Hallo SavMaz!

... kann nur leider keine Steuerung per Commandline finden - bist du sicher, dass das Tool sowas bieten soll?
"Attribut Changer" kann das nicht (deswegen oben "allerdings ...") - sollte nur zeigen, was ich eigentlich mit "touch"-Tool gemeint hatte.

Mir ist leider kein derartiges Commandline-Programm bekannt (sonst hätte ich's Dir schon verraten face-wink) ...

Grüße
bastla
Member: bastla
bastla Nov 16, 2008 at 23:03:44 (UTC)
Goto Top
Hallo SavMaz!

Nachtrag: Mit WinTouch sollte das klappen. (Für den Download musst Du Dich allerdings registrieren - außerdem wird .NET 1.1 vorausgesetzt).

Die Datums-/Zeitangabe ist den Systemeinstellungen entsprechend vorzunehmen - also etwa:
wintouch -d "D:\Test" -p "Eine Datei.txt" -t "15.11.2008 15:11:20" -c
Grüße
bastla
Member: SavMaz
SavMaz Nov 17, 2008 at 08:20:49 (UTC)
Goto Top
Hallo Bastla,

super, vielen, vielen Dank!!!!

das ist es, funktioniert nun bestens - nur zur Info: Folder werden mit dem Tool (wie mit allen anderen auch) zwar nicht korrekt geändert, dafür funktioniert eh schon mein Batch, jedoch werden nun die Files auch perfekt und richtig geändert!

Nochmals Danke für die super schnelle und kompetente Hilfe!!

Hier noch für alle, die es brauchen können, das fertig Script:
@echo off

set USBDrive=d:\test

if exist "%USBDrive%\re_sort_temp" rmdir "%USBDrive%\re_sort_temp" /S /Q  

for /f "delims= tokens=1" %%i in ('dir %USBDrive% /O:N /B') do (  
ren "%USBDrive%\%%i" "re_sort_temp"  
md "%USBDrive%\%%i"  
move "%USBDrive%\re_sort_temp\*.*" "%USBDrive%\%%i"  
rmdir "%USBDrive%\re_sort_temp" /S /Q  
wintouch -d "%USBDrive%\%%i" -t "%Date% %Time:~1,7%" -c -a -m  
)

Gruß
Andi

[Edit Biber 17.11.2008] Code in Code-Tags und Beitrag auf "erledigt" gesetzt.[/Edit]
Member: SavMaz
SavMaz Nov 17, 2008 at 09:37:44 (UTC)
Goto Top
Hallo nochmals,

war leider zu schnell mit der guten Nachricht - ich verstehe die Welt derzeit nicht mehr...

folgendes habe ich feststellen müssen:

die Sortierung der Folder macht der Autoradio offensichtlich nicht nach dem "Erstellungsdatum" Flag, sonder etwas "ähnlichem" - und zwar genau so, wie der DIR Befehl ohne weitere Parameter...

mache ich ein dir F: werde die Ordner wieder "irgendwie" sortiert, mit dir F: /O:N alphabetisch, mache ich DIR F: /O:N /S werden die Ordner wieder irgendwie sortiert, trotz neu angelegter Ordner und wingetouchter files!?!?!???

Weiß irgendwer, nach welchen Kriterien die Dateien per DIR von einem USB Stick (mit FAT32) soriert werden? Auf einer NTFS Platte funktioniert oben beschriebener Batch bestens, jedoch leider eben nicht am Stick selbt....

Kann man den Beitrag irgendwie wieder auf Nicht-gelöst setzten??

Edit: hab es gefunden, hab mal das Gelöst-Häckchen vom Beitrag wieder entfernt!

Gruß
Andi