482
d4shoerncheN
jadefalke
keitel
lighningcrow
michi1983

Dateiname mit Zeitstempel versehen

Mitglied: svatvn
05.02.2012
03:30:56 Uhr
552 Aufrufe
3 Antworten
Wenig anspruchsvoll -1
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
01.
Windows Registry Editor Version 5.00 
02.
[HKEY_CLASSES_ROOT\*\shell\Zeitstempel] 
03.
@="mit Zeitstempel versehen" 
04.
[HKEY_CLASSES_ROOT\*\shell\Zeitstempel\command] 
05.
@="C:\\Zeitstempel.bat \"%1\""

in die Zeitstempel.bat, welche auf C:\ liegt, kommt
01.
@echo off 
02.
 
03.
set name=%~1 
04.
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

Mitglied: StefanKittel
StefanKittel schreibt am 05.02.2012 um 09:52:56 Uhr
Moin,

vieleicht hilft Dir mein Schätzchen.
http://www.skittel.de/softwarebastelkiste ...

Stefan
Mitglied: bastla
bastla schreibt am 05.02.2012 um 11:32:47 Uhr
Hallo svatvn!

Ungetestet etwa so:
01.
@echo off & setlocal 
02.
set "Zeit=%date%_%time:~0,2%h%time:~3,2%m%time:~6,2%s" 
03.
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
Mitglied: Skyemugen
Skyemugen schreibt am 05.02.2012 um 11:41:47 Uhr
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 ..

01.
@echo off & setlocal 
02.
set "Stempel=%date%_%time:~0,2%h%time:~3,2%m%time:~6,2%s" 
03.
if %time:~,2% lss 10 set "Stempel=%date%_0%time:~1,1%h%time:~3,2%m%time:~6,2%" 
04.
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
mehr ...Ähnliche Beiträge