Ich habe ein Skript, das Dateien umbenennt, indem dem aktuellen Dateinamen ein Zeitstempel als Präfix hinzugefügt wird. Eine Datei mit einem Zeitstempel sieht folgendermaßen aus:
20170407_1030.file1.txt
Ich führe dieses Skript in einem Ordner aus, nachdem ich mit einigen Dateien gearbeitet habe. Das Problem ist, dass eine Datei, der bereits ein Zeitstempel vorangestellt wurde, beim nächsten Ausführen des Skripts dem Dateinamen einen weiteren Zeitstempel voranstellt. Wenn der Name einer Datei bereits einen Zeitstempel enthält, möchte ich ihn durch einen aktualisierten Zeitstempel ersetzen .
Um dies zu erreichen, versuche ich, Dateinamen zu identifizieren, die bereits einen Zeitstempel enthalten, und diesen gegebenenfalls durch einen aktualisierten Zeitstempel zu ersetzen.
Mein Skript dazu sieht derzeit so aus:
setlocal enabledelayedexpansion
for /f "delims=|" %%F in ('dir /b %cd%\*.*') do (
set "MDate=%%~tF"
set "Patern=*_*."
set "TimeStamp=!MDate:~6,4!!MDate:~0,2!!MDate:~3,2!"
ren "%%~nF%%~xF" "!TimeStamp!-%%~nF%%~xF"
)
exit
Bearbeiten: Entschuldigung, dass Sie keine weiteren Details angegeben haben. Ich habe einige Nachforschungen angestellt und kann keine Möglichkeit finden, die Masken in der angegebenen Stichprobe abzugleichen. Ich weiß, wie man vordefinierte Muster ersetzt oder wie man Masken wie passt ren *.png *.jpg
.