ich hatte ja schon geschrieben, dass ich mir 'nen Wolf suche.
Sorry, hatte ich übersehen. :redface: (Außerdem hattest Du "hatte" anstatt "habe" geschrieben. :zunge:)
ich hatte ja schon geschrieben, dass ich mir 'nen Wolf suche.
Sorry, hatte ich übersehen. :redface: (Außerdem hattest Du "hatte" anstatt "habe" geschrieben. :zunge:)
ZitatDas wird dann schon etwas schwieriger, wenn der Ausgabepfad mit Doppel-Backslashs im C-Stil umgeschrieben werden muss. Das wird in Batch nicht gerade trivial, oder?
Sollte so funktionieren:
EDIT:
Die Leerstellen vor > und >> können übrigens auch weggelassen werden, die werden sonst nur mit in die .opt-datei geschrieben.
Hab mal ebenfalls ohne Gewähr noch ein paar Änderungen vorgenommen, so finden die Tools auch ihre files, wenn nicht alles im aktuellen Verzeichnis liegt, und das Arbeitsverzeichnis als parameter übergeben wurde.
Außerdem bin ich mir nicht sicher, ob beispielsweise x264 + mkvmerge überhaupt %cd% kennen/beachten und ihre jeweiligen inputs nicht in ihren eigenen Programmverzeichnissen suchen:
[B]REM [/B]@ECHO off
REM ### zum debuggen auskommentieren
SET "ziel=%~1"
IF "%1"=="" SET "ziel=%cd%"
REM #### Wenn kein Ziel-Pfad als Parameter angegeben wurde, wird der aktuelle ausgelesen ####
[B]set "zielOpt=%ziel:\=\\%"
REM Zielpfad in C-Schreibweise[/B]
FOR /F "tokens=1 delims=" %%a IN ('DIR /B "[B]%ziel%\[/B]*.mkv"') DO CALL :CLI "%%~na"
REM #### System automatisch runterfahren ####
REM shutdown -s -t 60
PAUSE
EXIT
REM #### Unterprogramm-Schleife ####
:CLI
SET "file=%~1"
REN "[B]%ziel%\[/B]%file%.mkv" "Quellvideo.mkv_temp"
REM #### Video kodieren crf ####
"C:\Programme\StaxRip\Applications\x264\x264.exe" "[B]%ziel%\[/B]AVS-DATEI.avs" --output "[B]%ziel%\[/B]%file%.h264" --preset slow --tune film --profile high --level 4.1 --crf 18
REM #### Quellvideo zurückbenennen ####
REN "[B]%ziel%\[/B]Quellvideo.mkv_temp" "%file%.mkv"
REM #### Mergen ####
REM #### 1. generelle Optionen ####
ECHO --clusters-in-meta-seek>[B]"%ziel%\%file%.opt"[/B]
ECHO --disable-lacing>>"%ziel%\%file%.opt"
ECHO --engage no_cue_duration>>"%ziel%\%file%.opt"
ECHO --engage no_cue_relative_position>>"%ziel%\%file%.opt"
ECHO --engage no_simpleblocks>>"%ziel%\%file%.opt"
ECHO --track-order 0:0,1:0,2:0,3:0,4:0>>"%ziel%\%file%.opt"
REM #### 2. Ausgabedatei ####
ECHO -o "[B]%zielOpt%\\[/B]%file%.mkv">>"%ziel%\%file%.opt"
REM #### 3.1 Videotrack-Optionen ####
ECHO --language 0:ger>>"%ziel%\%file%.opt"
ECHO --track-name 0:"%file%">>"%ziel%\%file%.opt"
ECHO --forced-track 0:no>>"%ziel%\%file%.opt"
ECHO --display-dimensions 0:1920x1080>>"%ziel%\%file%.opt"
ECHO --default-duration 0:24p>>"%ziel%\%file%.opt"
ECHO --compression 0:none>>"%ziel%\%file%.opt"
ECHO -d 0>>"%ziel%\%file%.opt"
ECHO -A>>"%ziel%\%file%.opt"
ECHO -S>>"%ziel%\%file%.opt"
ECHO -T>>"%ziel%\%file%.opt"
ECHO --no-global-tags>>"%ziel%\%file%.opt"
ECHO --no-chapters>>"%ziel%\%file%.opt"
ECHO ="[B]%zielOpt%\\[/B]%file%.h264">>"%ziel%\%file%.opt"
REM #### Das = verhindert, dass Episoden einer Serie zusammengefasst werden ####
REM #### 3.2a Audiotrack-Optionen ####
ECHO --language 0:ger>>"%ziel%\%file%.opt"
ECHO --track-name 0:"%file% Ger">>"%ziel%\%file%.opt"
ECHO --forced-track 0:no>>"%ziel%\%file%.opt"
ECHO --compression 0:none>>"%ziel%\%file%.opt"
ECHO -a 0>>"%ziel%\%file%.opt"
ECHO -D>>"%ziel%\%file%.opt"
ECHO -S>>"%ziel%\%file%.opt"
ECHO -T>>"%ziel%\%file%.opt"
ECHO --no-global-tags>>"%ziel%\%file%.opt"
ECHO --no-chapters>>"%ziel%\%file%.opt"
ECHO ="[B]%zielOpt%\\[/B]%file%_ger.dts">>"%ziel%\%file%.opt"
REM #### 3.2b Audiotrack-Optionen ####
ECHO --language 0:eng>>"%ziel%\%file%.opt"
ECHO --track-name 0:"%file% Eng">>"%ziel%\%file%.opt"
ECHO --forced-track 0:no>>"%ziel%\%file%.opt"
ECHO --compression 0:none>>"%ziel%\%file%.opt"
ECHO -a 0>>"%ziel%\%file%.opt"
ECHO -D>>"%ziel%\%file%.opt"
ECHO -S>>"%ziel%\%file%.opt"
ECHO -T>>"%ziel%\%file%.opt"
ECHO --no-global-tags>>"%ziel%\%file%.opt"
ECHO --no-chapters>>"%ziel%\%file%.opt"
ECHO ="[B]%zielOpt%\\[/B]%file%_eng.dts">>"%ziel%\%file%.opt"
REM #### 3.3a Subt.-Track-Optionen ####
ECHO --language 0:ger>>"%ziel%\%file%.opt"
ECHO --track-name 0:"%file% Ger">>"%ziel%\%file%.opt"
ECHO --forced-track 0:no>>"%ziel%\%file%.opt"
ECHO -s 0>>"%ziel%\%file%.opt"
ECHO -D>>"%ziel%\%file%.opt"
ECHO -A>>"%ziel%\%file%.opt"
ECHO -T>>"%ziel%\%file%.opt"
ECHO --no-global-tags>>"%ziel%\%file%.opt"
ECHO --no-chapters>>"%ziel%\%file%.opt"
ECHO ="[B]%zielOpt%\\[/B]%file%_ger.sup">>"%ziel%\%file%.opt"
REM #### 3.3b Subt.-Track-Optionen ####
ECHO --language 0:eng>>"%ziel%\%file%.opt"
ECHO --track-name 0:"%file% Eng">>"%ziel%\%file%.opt"
ECHO --forced-track 0:no>>"%ziel%\%file%.opt"
ECHO -s 0>>"%ziel%\%file%.opt"
ECHO -D>>"%ziel%\%file%.opt"
ECHO -A>>"%ziel%\%file%.opt"
ECHO -T>>"%ziel%\%file%.opt"
ECHO --no-global-tags>>"%ziel%\%file%.opt"
ECHO --no-chapters>>"%ziel%\%file%.opt"
ECHO ="[B]%zielOpt%\\[/B]%file%_eng.sup">>"%ziel%\%file%.opt"
REM #### 4. Aufruf ####
"C:\Programme\MKVtoolnix\mkvmerge.exe" @"[B]%ziel%\[/B]%file%.opt"
REM ### Weiß nicht welche Pfad-Schreibweise hier mkvmerge erwartet, alternativ:
REM "C:\Programme\MKVtoolnix\mkvmerge.exe" @"[B]%zielOpt%\\[/B]%file%.opt"
REM #### 5. Aufräumen (zum Debuggen auskommentieren)
REM DEL /f /q "[B]%ziel%\[/B]%file%.opt"
GOTO :EOF
Alles anzeigen
Und nun müssen noch die Parameter mit Werten so zerteilt werden, dass einerseits der Parametername und andererseits der Wert auch noch in einzelne Zeilen kommen; in dem Punkt ist mkvmerge etwas anstrengend. Aber gut, wenn man damit Anführungszeichen vermeiden kann, weil der komplette Inhalt der nächsten Zeile ein Dateiname sein muss ... von mir aus. Dann eben noch viel mehr ECHO-Zeilen.
ZitatDann eben noch viel mehr ECHO-Zeilen.
Oder alternativ eben doch wieder einen langen Bandwurm-Aufruf von mkvmerge ohne ein .opt-file zu erzeugen, sind ja nur ~ 1000-1500 Zeichen...
Oder es kommen beim Aufruf doch die ^ Escapes ans Zeilenende, oder... [Blockierte Grafik: http://forum.gleitz.info/images/smilies/biggrin_.gif]
So jetzt reichts aber, jetzt sollte langsam alles klar sein
:strike:
Oh Gott...was hab ich da wieder angerichtet...eigentlich wollte ich ja nur nach den Abspielproblemen fragen...^^
Hoffentlich hat's überhaupt irgendwas geholfen :floet:
Das werde ich am WE sehen, dann werd ich die neue Batch mal ausprobieren...^^
Die ganzen "echos" lassen sich zusammenfassen, was übersichtlicher ausschaut:
(REM #### 1. generelle Optionen ####ECHO --clusters-in-meta-seekECHO --disable-lacingECHO --engage no_cue_durationECHO --engage no_cue_relative_positionECHO --engage no_simpleblocksECHO --track-order 0:0,1:0,2:0,3:0,4:0REM #### 2. Ausgabedatei ####ECHO -o "%zielOpt%\\%file%.mkv"REM #### 3.1 Videotrack-Optionen ####ECHO --language 0:gerECHO --track-name 0:"%file%"ECHO --forced-track 0:noECHO --display-dimensions 0:1920x1080ECHO --default-duration 0:24pECHO --compression 0:noneECHO -d 0ECHO -AECHO -SECHO -TECHO --no-global-tagsECHO --no-chaptersECHO ="%zielOpt%\\%file%.h264"REM #### Das = verhindert, dass Episoden einer Serie zusammengefasst werden ####REM #### 3.2a Audiotrack-Optionen ####ECHO --language 0:gerECHO --track-name 0:"%file% Ger"ECHO --forced-track 0:noECHO --compression 0:noneECHO -a 0ECHO -DECHO -SECHO -TECHO --no-global-tagsECHO --no-chaptersECHO ="%zielOpt%\\%file%_ger.dts"REM #### 3.2b Audiotrack-Optionen ####ECHO --language 0:engECHO --track-name 0:"%file% Eng"ECHO --forced-track 0:noECHO --compression 0:noneECHO -a 0ECHO -DECHO -SECHO -TECHO --no-global-tagsECHO --no-chaptersECHO ="%zielOpt%\\%file%_eng.dts"REM #### 3.3a Subt.-Track-Optionen ####ECHO --language 0:gerECHO --track-name 0:"%file% Ger"ECHO --forced-track 0:noECHO -s 0ECHO -DECHO -AECHO -TECHO --no-global-tagsECHO --no-chaptersECHO ="%zielOpt%\\%file%_ger.sup"REM #### 3.3b Subt.-Track-Optionen ####ECHO --language 0:engECHO --track-name 0:"%file% Eng"ECHO --forced-track 0:noECHO -s 0ECHO -DECHO -AECHO -TECHO --no-global-tagsECHO --no-chaptersECHO ="%zielOpt%\\%file%_eng.sup")>"%ziel%\%file%.opt"
CALL :label ist ein hervorragender Trick, in etwa vergleichbar mit dem GOSUB in BASIC.
In Batch verändern sich aber manche Zeichenketten (Dateinamen!), wenn die als Parameter übergeben werden, zB:
@ECHO OFF & setlocal
set "filename=100%%.mkv"
echo %filename%
call:sub "%filename%"
goto:eof
:sub
echo %~1
goto:eof
Alles anzeigen
Sollte man mal gehört haben...
Es fehlen aber immer noch massig Zeilenumbrüche.
Falsch:
Richtig:
Falsch:
Richtig:
--disable-lacing und --engage no_simpleblocks würde ich weiterhin weglassen. Das müßte schon ein sehr spezieller Player sein, der das nicht kann.
Dafür, daß es hier wohl nur um einen klitzekleinen Fehler ging, ist es aber wirklich ganz schön ausgeartet.
Das mit den option files ist tricky, muss man sich reinfuchsen. Das einfach so mal reinschreiben geht nicht: siehe hier.
Ich habs ja schon vor Wochen gesagt & den Link zur Docu gepostet, aber mir hört ja keiner zu !
Ich sags ja immer...man fragt euch eine Kleinigkeit und ihr baut einen ganzen Atom-Reaktor drauß...^^
Find ich klasse, was spricht gegen Nachhilfe im Batcherstellen?
Das ich damit vollkommen überfordert bin?
Das könntest du in wenigen Wochen passabel lernen. Die Frage ist, ob sich das lohnt. Imo nicht. Ich würde meine Energie für eine Scriptsprache lieber in Powershell oder -noch besser- Perl stecken. Batch ist ganz klar auf dem absteigenden Ast.
naja...ich bin momentan eh an Java drann...mal schauen was ich damit in Zukunft machen kann...^^
Den Rechner desinfizieren...
Regelrecht "berüchtigt" ist schon das "Felix-von-Leitner-Institut für verteiltes Echtzeit-Java". Das hat unter anderem analysiert, warum der ICE-3 eine Sekunde braucht, um auf den Not-Halt zu reagieren.
Blasphemiiieeeee!!!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!