leknilk0815
Goto Top

DOS-Batch mit Date- Funktion

Bei der Uhrzeit fehlt die führende Null

Servus,

ich habe eine Batch, welche *.JPG- Dateien mit Datum und Uhrzeit im Dateinamen versieht. Funktioniert prima (dank Biber).
Der einzige Schönheitsfehler:
Bei der Uhrzeit zwischen 0:00 und 9:59 fehlt die führende Null, weshalb die Dateien dann auf der Website falsch sortiert werden.
Beispiel:
Die Datei:
20062008_19425208.jpg
erscheint auf der Liste oben,
die Datei:
20062008_8265107.jpg
erst darunter, obwohl sie älter ist.
Wenn sie mit:
20062008_08265107.jpg
benannt wäre, würde das nicht passieren.

Was muss ich im folgenden Schnipsel ändern, damit das so ist?

set timestamp=%date%_%time%
set timestamp=%timestamp:.=% 
set timestamp=%timestamp::=%
set timestamp=%timestamp:,=%
set timestamp=%timestamp: =%

Danke!

Content-ID: 90309

Url: https://administrator.de/forum/dos-batch-mit-date-funktion-90309.html

Ausgedruckt am: 22.12.2024 um 16:12 Uhr

bastla
bastla 20.06.2008 um 21:14:43 Uhr
Goto Top
Hallo leknilk0815!

Ändere die letzte Zeile auf
set timestamp=%timestamp: =0%
Grüße
bastla
leknilk0815
leknilk0815 20.06.2008 um 21:20:04 Uhr
Goto Top
Danke, habs geändert. Ob es funktioniert, seh ich erst morgen früh. Geh ich aber davon aus...

Vielen Dank für die schnelle Antwort, schönen Abend noch!
leknilk0815
leknilk0815 21.06.2008 um 09:44:09 Uhr
Goto Top
Servus,

es funktioniert, allerdings mit einem kleinen Schönheitsfehler (stört aber nicht):
Es werden 2 Nuller eingefügt, einer wie gewünscht am Anfang, komischerweise dann noch einer am Ende. Das sieht dann so aus:

21062008_093841210.jpg
21062008_113134370.jpg

Aber egal, die Sortierung auf der Website funktioniert damit.

Danke nochmal!
bastla
bastla 21.06.2008 um 13:22:04 Uhr
Goto Top
Hallo leknilk0815!

Ändere jeweils die Schreibweise auf
set "timestamp=%date%_%time%"  
etc bzw achte darauf, dass in den einzelnen Zeilen am Ende kein Leerzeichen steht.

Grüße
bastla
Biber
Biber 21.06.2008, aktualisiert am 18.10.2012 um 18:35:53 Uhr
Goto Top
Moin leknilk0815 und bastla,

weil ich es zufällig gerade in einem anderen Thread in Arbeit habe:

In der Theorie bzw in der M$-Dokumentation sollte eigentlich das Problem einer fehlenden führenden Time-Stunden-Null garnienicht auftreten, wenn der HKCU-Registry-Wert iTLZero gesetzt ist.
Siehe hier beim sympathischen Weltmarktführer.

Also könnte ein einmaliges Setzen via Klickibunti oder CMD-Prompt helffen
Set regkey="HKEY_CURRENT_USER\Control Panel\International"  
reg Add %regkey% /v iTLZero /d 1 /f
Meiner unmaßgeblichen Wahrnehmung nach funktioniert es nicht reproduzierbar.
Aber wenn es funktionieren würde, wäre es doch eine feine Sache.. face-wink

Grüße
Biber
bastla
bastla 21.06.2008 um 13:46:35 Uhr
Goto Top
@Biber

wäre es doch eine feine Sache.. face-wink
Zweifellos; und damit ließe sich auch die folgende Variante (welche ich hinsichtlich Sortierbarkeit eigentlich vorziehen würde) auf einen Oneliner reduzieren:
@echo off & setlocal
for /f "tokens=1-3 delims=." %%a in ("%date%") do set "dstamp=%%c%%b%%a"  
for /f "tokens=1-4 delims=:, " %%a in ("%time%") do set "tstamp=0%%a%%b%%c%%d"  
set "timestamp=%dstamp%_%tstamp:~-8%"  
echo %timestamp%
Grüße
bastla