Ich möchte allen MKVs in einem Ordner Covercover hinzufügen

-1

Ich versuche, allen MKV-Dateien in Windows mithilfe von Batch-Skripten Batch-Cover hinzuzufügen. Meine Dateistruktur sieht so aus:

Video1.mkv
Video1.jpg

Sowohl Video als auch Image haben den gleichen Dateinamen, der einzige Unterschied ist die Erweiterung.

Ich habe den folgenden Befehl ausprobiert:

FOR %%f IN (*.mkv) DO (
mkvpropedit.exe "%%~nf.mkv" --attachment-name "cover" --attachment-mime-type 
"image/jpeg" --add-attachment "%%~nf.jpg"
)

Es ist seltsam, wie dieser Befehl für andere Apps funktioniert und er funktioniert nicht für MKVPropedit.

Das Ergebnis ist:

Error: The file '%%~nf.jpg' could not be opened for reading: open file error.

Meine JPG-Dateien sind nicht beschädigt, daher weiß ich nicht wirklich, was dieser Fehler bedeutet.

G. L.
quelle

Antworten:

1

Sie sollten einen anderen variablen Buchstaben in Ihrem FOR-Befehl verwenden. Der Buchstabe f ist einer der Buchstaben im Pfadnamenformat (Die vollständige Liste ist a, d, f, n, p, s, t, x ). Verwenden Sie beispielsweise G wie hier gezeigt:

FOR %%G IN (*.mkv) DO (mkvpropedit.exe "%%~nG.mkv" --attachment-name "cover" --attachment-mime-type "image/jpeg" --add-attachment "%%~nG.jpg")

Laut SS64.com G ist eine gute Wahl, da es die längste Anzahl von Buchstaben bietet, die mit keinem der Buchstaben im Pfadnamenformat in Konflikt stehen:

%% G ist eine gute Wahl, da es keinen Konflikt mit den Buchstaben des Pfadnamenformats (a, d, f, n, p, s, t, x) gibt und die längste Anzahl nicht konfliktiver Buchstaben für die Verwendung als implizit bietet Parameter.   G & gt; H & gt; I & gt; J & gt; K & gt; L & gt; M

Des Weiteren, Wenn Sie dies direkt über die Eingabeaufforderung ausführen, müssen Sie einzelne% -Zeichen verwenden, nicht wie in der folgenden Abbildung doppelt:

FOR %G IN (*.mkv) DO (mkvpropedit.exe "%~nG.mkv" --attachment-name "cover" --attachment-mime-type "image/jpeg" --add-attachment "%~nG.jpg")

Dieser Stapelüberlauf Antworten enthält weitere Informationen zur Verwendung von FOR innerhalb und außerhalb von Batch-Skripts.

Twisty Impersonator
quelle
Ihr Befehl hat nicht funktioniert. Ich habe das Ergebnis erhalten: %% G zu diesem Zeitpunkt unerwartet.
G. L.
Siehe aktualisierte Antwort.
Twisty Impersonator
Also gibt es Unterschiede? Ich wusste es nicht. Wenn ich es also in einer .bat-Datei verwenden möchte, was meine Absicht ist, sollte ich es mit %% G verwenden. Wenn ich es direkt von der Eingabeaufforderung aus verwenden möchte, sollte ich% G verwenden? Sehr interessant.
G. L.
In dem von mir bereitgestellten Link finden Sie Informationen, warum Sie nur zwei Prozent in einer Batchdatei verwenden müssen. Der Kaffee, wenn der Buchstabe G ist, dient einfach dazu, andere Buchstaben zu vermeiden, die anderweitig verwendet werden.
Twisty Impersonator
Vielen Dank Alter. Wirklich nett. Ich habe es für heute ausprobiert und wusste nichts davon. Ich habe es hier genau gefunden: ss64.com/nt/syntax-args.html
G. L.