svatvn
Goto Top

Dateiname mit Zeitstempel versehen

Hi,
ich möchte mit einem Rechtsklick auf jede beliebige Datei, den vorhandenen Dateinamen mit einem Zeitstempel versehen/ erweitern:

Beispielsweise:
Rechtsklick auf Datei.jpg -> Umbennenung in Datei_05.02.2012_03h13m59s.jpg
Rechtsklick auf Datei.xxx -> Umbennenung in Datei_05.02.2012_03h13m59s.xxx


Mein jetziger Code:

In die Registry kommt folgendes
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\Zeitstempel]
@="mit Zeitstempel versehen"  
[HKEY_CLASSES_ROOT\*\shell\Zeitstempel\command]
@="C:\\Zeitstempel.bat \"%1\""  

in die Zeitstempel.bat, welche auf C:\ liegt, kommt
@echo off

set name=%~1
ren "%name%" "%date%_%time:~0,2%h%time:~3,2%m%time:~6,2%s"  

momentan werden alle Dateien umbenannt, leider mit 3 Schönheitsfehlern

Problem 1:
Leider werden alle Dateien Endungslos. Die Dateiendungen werden nicht übernommen

Problem 2:
Der Originalname der Datei ist nicht mehr da...

Problem 3:
Bei der Stunde fehlt die führende Null,
es kommt z.B. 05.02.2012_ 3h23m55s raus, anstatt 05.02.2012_03h23m55s

Wie kann ich die drei Probleme lösen?

Beste Grüße face-smile
Kommentar vom Moderator Biber am 05.02.2012 um 11:43:26 Uhr
Rechtsklick auf Datei.jpg -> Umbennenung in Datei_05.02.2012_03h13m59s.jpg
Rechtsklick auf Datei.xxx -> Umbennenung in Datei_05.02.2012_03h13m59s.xxx
Set /a rgc += 2
#795

Content-ID: 180051

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

Ausgedruckt am: 05.11.2024 um 19:11 Uhr

StefanKittel
StefanKittel 05.02.2012 um 09:52:56 Uhr
Goto Top
bastla
bastla 05.02.2012 um 11:32:47 Uhr
Goto Top
Hallo svatvn!

Ungetestet etwa so:
@echo off & setlocal
set "Zeit=%date%_%time:~0,2%h%time:~3,2%m%time:~6,2%s"  
ren %1 "%~n1_%Zeit: =0%%~x1"  
Wenn Du die Online-Hilfe mit "for /?" aufrufst (und genug Geduld aufbringst - der für diesen Zweck hier interessante Teil ist ziemlich weit unten zu finden face-wink), kannst Du das sicher auch nachvollziehen ...

Grüße
bastla
Skyemugen
Skyemugen 05.02.2012 um 11:41:47 Uhr
Goto Top
Zitat von @svatvn:
Wie kann ich die drei Probleme lösen?

Aloha,

indem du dich mal mit den grundlegenden Sachen in Batch beschäftigst ... schon der reine Sachverstand erklärt dir Frage 1 und löst Frage 2; Frage 3 ist nun auch so simpel, dass es eine rein logische Sache ist ...

Da ich aber keine Lust habe, den Thread hier unnötig hinauszuzögern ..

@echo off & setlocal
set "Stempel=%date%_%time:~0,2%h%time:~3,2%m%time:~6,2%s"  
if %time:~,2% lss 10 set "Stempel=%date%_0%time:~1,1%h%time:~3,2%m%time:~6,2%"  
ren "%~1" "%~n1_%Stempel%%~x1"  

greetz André

edit: hätte mal refreshen sollen *mampf* Frühstück kam dazwischen

P.S.: @bastla, *mampf* schön kurz *mampf* auch 'ne Idee face-wink