Kategorien
Linux Windows

Für jede Datei Namens…

Wiederholende Aufgaben für alle Dateien eines Verzeichnisses Ausführen.

In meinem Beispiel werden Alle Dateien die mit einem „D“ anfangen und auf „.avi“ enden mit mkvmerge in einen (MKV)

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

Von der_metzger

Hi, ich bin Jan Kuehnel - Fachinformatiker für Systemintegration ,Linux-Benutzer und Blogger. Ich arbeite seit 10 Jahren im Technischen Support eines großen Providers in Deutschland und folge seit meiner Kindheit dem Hobby, technische Rätsel zu lösen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.