Batch Date/Time Variable für Angabe im Dateinamen

Big-Blue

Lieutenant
Registriert
Mai 2010
Beiträge
569
Hallo,

ich bearbeite ab und zu ein .mkv-Konvertier-Skript, um kleine Sachen hinzuzufügen.
Nun wollte ich es so einrichten, dass - statt einem Logfile, das immer überschrieben wird - jeweils pro Durchgang eins mit Datums- und Zeitstempel angelegt wird.
Hier mein Versuch:
Code:
@ECHO OFF
REM SET MKVTOOLPATH=C:\Program Files (x86)\MKVToolnix
SET KEY="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\mmg.exe"
SET DT=-%date:~-4%-%date:~-7,2%-%date:~-10,2%--%time:~0,8%
FOR /F "tokens=2*" %%A IN ('REG QUERY %KEY%') DO SET MKVTOOLPATH=%%B
ECHO MKVToolnix found at %MKVTOOLPATH% > logging%DT%.txt
FOR /F "delims=*" %%A IN ('dir /b /s *.MKV') do CALL :MKVFIXMUX "%%A" "%MKVTOOLPATH%"
START "" logging%DT%.txt
explorer.exe "%CD%"
GOTO :eof
:MKVFIXMUX
"%~dp2mkvmerge.exe" -o "%~dpn1_fix.MKV" --engage keep_bitstream_ar_info -A -S --compression -1:none "%~dpnx1" -D -S --compression -1:none "%~dpnx1" -A -D "%~dpnx1"
if not errorlevel 0 (
ECHO Failed on %~nx1 remux! >> logging%DT%.txt
goto :eof
)
if exist "%~dpn1_fix.MKV" (
del "%~dpnx1"
rename "%~dpn1_fix.MKV" "%~nx1"
)
ECHO Processing of %~nx1 successful! >> logging%DT%.txt
goto :eof
Das Original sah so aus:
Code:
@ECHO OFF
cd "%~dp0"
REM SET MKVTOOLPATH=C:\Program Files (x86)\MKVToolnix
SET KEY="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\mmg.exe"
FOR /F "tokens=2*" %%A IN ('REG QUERY %KEY%') DO SET MKVTOOLPATH=%%B
ECHO MKVToolnix found at %MKVTOOLPATH% > logging.txt
FOR /F "delims=*" %%A IN ('dir /b /s *.MKV') do CALL :MKVFIXMUX "%%A" "%MKVTOOLPATH%"
START "" logging.txt
GOTO :eof
:MKVFIXMUX
"%~dp2mkvmerge.exe" -o "%~dpn1_fix.MKV" --engage keep_bitstream_ar_info -A -S --compression -1:none "%~dpnx1" -D -S --compression -1:none "%~dpnx1" -A -D "%~dpnx1"
if not errorlevel 0 (
ECHO Failed on %~nx1 remux! >> logging.txt
goto :eof
)
if exist "%~dpn1_fix.MKV" (
del "%~dpnx1"
rename "%~dpn1_fix.MKV" "%~nx1"
)
ECHO Processing of %~nx1 successful! >> logging.txt
goto :eof
Zur Übersicht, meine Variable soll DT sein.
Es wird jedoch kein Logfile erstellt und ich bekomme die Meldung:
Zum Ausführen der gewünschten Aktion ist kein Programm zugeordnet. [...]
Bezieht sich anscheinend auf die logging-2011-06-10--18:54:21.txt (als Beispiel). Irgendwas an dem Dateinamen scheint ungültig. Nur was?
Grüße

EDIT: Schon erledigt, man musste die Zeit splitten ^^'
Das Zauberwort war im Endeffekt
Code:
SET DT=-%date:~-4%-%date:~-7,2%-%date:~-10,2%--%time:~0,2%-%time:~3,2%
 
Zuletzt bearbeitet:
Hi,

also, das hättest du in 2 Sekunden rausfinden können, wenn du einfach bei dir auf der Maschine versuchst, so eine Datei anzulegen :rolleyes:

Doppelpunkte gehen nicht!

VG,
Mad
 
Zurück
Oben