Um wiederholt gleiche Befehle für mehrere Dateien auszuführen kann das folgende Snippet verwendet werden.
Unter Windows
FOR %A IN ("D*.avi") DO mkvmerge.exe -o "%~nA.mkv" "%A"
- %A ist die verwendete Variable, sie nimmt Nacheinander den Dateinamen der gefundenen Dateien an.
- „D*.avi“ ist der Suchausdruck, welcher auf alle zu verwendenden Dateien, und nur auf diese, zutreffen muss (Fängt mit einem Großen „D“ an, dann kommen beliebig viele beliebige Zeichen, Der Dateiname endet mit der Zeichenfolge „.avi“)
- nach dem „DO“ folgt der wiederholt auszuführende Befehl, hier mkvmerge
- der Ausgabename der Datei (-o) ist gleich dem der Eingabedatei (%A), die Dateiendung wird weggelassen und „.mkv“ wird dem Dateinamen angehängt
- Die Anführungsstriche ermöglichen Leerzeichen in den Dateinamen, ohne würden die Leerzeichen als nächster Befehl gedeutet.
Linux
find . -iname "D*.avi" | while read A; do B=$(/usr/bin/basename "$A" .avi); mkvmerge -o "$B".mkv "$A"; done
- Zeile1
- Schleifenanfang mit „find“ zur Aufzählung aller Dateinamen die mit einem „D“ beginnen dem beliebig viele beliebige Zeichen folgen und mit „.avi“ enden.
- „-iname“ Groß/Kleinschreibung wird beim Vergleich berücksichtigt, alternativ „-name“ wenn dies nicht gewünscht ist
- Zeile2
- Der Dateiname sind um die Dateierweiterung „.avi“ gekürzt
- Zeile3
- mkvmerge ausführen, Ausgabe-Dateiname ist der Name der Eingabedatei mit der Dateierweiterung „.mkv“
- Zeile4
- Ende der Schleife