Führen Sie eine Reihe von Befehlen für jede Datei in einem Verzeichnis aus

Führen Sie eine Reihe von Befehlen für jede Datei in einem Verzeichnis aus

Um einer einzelnen Datei Untertitel hinzuzufügen, verwende ich den folgenden Befehl:

mkvmerge.exe -o g:\movie01.mkv --default-track 0 --language 0:pl movie01.mkv movie01.srt

Wo:

movie01.mkvist der Name einer Videodatei

movie01.srtist der Name einer Untertiteldatei (er ist immer derselbe wie die Videodatei)

g:\movie01.mkvist die Ausgabedatei

Wie führe ich den oben genannten Befehl für jede Datei in einem Verzeichnis aus?

Antwort1

Dieser Befehl durchläuft alle MKV-Dateien und führt den Befehl für jede einzelne aus (ich schlage vor, ihn in einer .batDatei abzulegen). Der Befehl sollte in dem Verzeichnis ausgeführt werden, das Ihre MKV-Dateien enthält.

for %%A in (*.mkv) do if /i "%%~XA"==".mkv" ( 
    c:\<path to mkvmerge>\mkvmerge.exe -o g:\"%%A" --default-track 0 --language 0:pl "%%A" "%%~nA.srt"
)

%%Aist gleich dem genauen Dateinamen.

%%~nAist gleich dem Dateinamen ohne Dateityp.

Antwort2

Vorausgesetzt, alle Dateien haben die Erweiterung .mkv, wie wäre es hiermit:

for /r %%video in (*.mkv) do mkvmerge.exe -o %%video --default-track 0 --language 0:pl %%video.srt

%%videoist die Variable, die jede Datei im aktuellen Ordner mit der angegebenen Erweiterung identifiziert. Nachdem doich den Befehl für jede Datei ausgeführt habe, verwende ich dieselbe Variable, um die srt-Datei aufzurufen.

verwandte Informationen