Batch-Änderungsdatum aller Dateien in dir basierend auf der Namensreihenfolge

342
kofifus

Ich habe viele Bilder nach ihren Dateinamen sortiert: img1.jpg, img2.jpg ...

Ich muss das Dateidatum ändern, das jetzt auf allen Bildern gleich ist, so dass das Datum img1.jpg vor dem Datum img2.jpg etc liegt

Es ist mir egal, was das Startdatum ist oder wie groß der Zeitunterschied zwischen zwei Bildern ist (1 Sekunde wird funktionieren). Ich brauche das, weil einige Dienste, z. B. Flickr, auf die Image-Datei datetime angewiesen sind, die ich verloren habe.

Irgendwie kann ich das tun?

1
Bitte beachten Sie, dass https://superuser.com kein kostenloser Skript- / Code-Schreibservice ist. Wenn Sie uns sagen, was Sie bisher versucht haben (einschließlich der Skripts / des Codes, die Sie bereits verwenden) und wo Sie stecken bleiben, können wir versuchen, bei bestimmten Problemen zu helfen. Sie sollten auch lesen [Wie kann ich eine gute Frage stellen?] (Https://superuser.com/help/how-to-ask). DavidPostill vor 5 Jahren 0
Zum Glück gelang es mir, eine großartige Antwort zu erhalten, die wahrscheinlich für andere nützlich sein wird, bevor Sie sie auf Eis legen. Diese Art von Moderation ist bs kofifus vor 5 Jahren 0
Hey, Leute, ich lösche meine Antwort, wenn Sie wirklich das Gefühl haben, dass der Fragesteller es nicht verdient hat, aber wenn er / sie ein Gefühl hat, haben sie es inzwischen kopiert. Michael Harvey vor 5 Jahren 0
großartige Antwort, bitte behalten Sie es kofifus vor 5 Jahren 0
Das Wesentliche dabei ist, dass `copy / b Dateiname + 'die Datei auf die aktuelle Zeit reduziert. Michael Harvey vor 5 Jahren 0

1 Antwort auf die Frage

2
Michael Harvey
@echo off echo Before: for %%A in (*.jpg) do ( for /f "tokens=1-2 delims=" %%i in ('"forfiles /m "%%A" /c "cmd /c echo @fdate @ftime" "') do echo %%i %%j %%A ) echo Changing dates... for %%A in (*.jpg) do ( echo Redating %%A copy /b "%%A"+,, > nul ping -n 2 127.0.0.1>nul ) echo After: for %%A in (*.jpg) do ( for /f "tokens=1-2 delims=" %%i in ('"forfiles /m "%%A" /c "cmd /c echo @fdate @ftime" "') do echo %%i %%j %%A ) 

Ausgabe:

Before: 22/12/2016 21:52:17 img01.jpg 15/04/2017 19:25:39 img02.jpg 26/12/2010 11:00:45 img03.jpg 03/02/2018 20:48:00 img04.jpg 15/07/2018 20:01:14 img05.jpg 29/03/2012 19:28:54 img06.JPG 04/10/2003 16:47:54 img07.jpg 04/08/2006 17:27:25 img08.jpg Changing dates... Redating img01.jpg Redating img02.jpg Redating img03.jpg Redating img04.jpg Redating img05.jpg Redating img06.JPG Redating img07.jpg Redating img08.jpg After: 14/10/2018 09:25:48 img01.jpg 14/10/2018 09:25:49 img02.jpg 14/10/2018 09:25:50 img03.jpg 14/10/2018 09:25:51 img04.jpg 14/10/2018 09:25:53 img05.jpg 14/10/2018 09:25:54 img06.JPG 14/10/2018 09:25:55 img07.jpg 14/10/2018 09:25:56 img08.jpg