OK, ich denke, Sie haben eine Reihe von Dateien wie
ant.mov bug.mov cat.mov dog.mov ︙
in einem Verzeichnis (aka Ordner) und Sie möchten dies tun
HandbrakeCLI.exe ( bla bla bla ) -i ant.MOV -o ant.mp4 HandBrakeCLI.exe…… -i bug.MOV -o bug.mp4 HandbrakeCLI.exe…… -i cat.MOV -o cat.mp4 HandbrakeCLI.exe…… -i dog.MOV -o dog.mp4 ︙
für alle *.mov
Dateien. Das ist ziemlich einfach:
für% F in (* .mov) HandBrakeCLI.exe ( bla bla bla bla ) -i "% F" -o "% ~ nF.mp4"
Das for %F in (*.mov)
führt eine Schleife aus, in der %F
jeder anwendbare *.mov
Name übernommen wird. Dann do
wird für jede Datei der Befehl ausgeführt, der %F
offensichtlich durch den .mov
Dateinamen ersetzt wird . (Hinweis: F
Groß- und Kleinschreibung wird berücksichtigt.) (Sie können möglicherweise ohne Anführungszeichen auskommen - dh, sagen Sie einfach %F
und nicht "%F"
-), aber es schlägt fehl, wenn Sie Dateinamen mit Leerzeichen oder anderen Sonderzeichen enthalten .) %~nF
wird durch die ersetzt n AME Teil des Dateinamens (nicht einschließlich der Erweiterung), so %~nF.mp4
wird die Ausgabe Dateinamen.
Möglicherweise möchten Sie dies in mehrere Zeilen unterteilen, weil Ihr eigentlicher Befehl so lang ist und / oder weil Sie andere Dinge in der Schleife ausführen möchten. Sie können dies mit Klammern tun:
für% F in (* .mov) do ( HandBrakeCLI.exe (bla bla bla) -i "% F" -o "% ~ nF.mp4" (anderer Befehl (e) mit "% F", "% ~ nF", etc.) )
Geben Sie ein for /?
, um eine Liste aller ~
Codes anzuzeigen. (Beispiel: %~dF
Gibt den Laufwerksbuchstaben an und %~pF
gibt den Pfad an.) In der Dokumentation ist nicht klar, dass Sie die Modifikatoren kombinieren können, z. B. %~dpnF
Laufwerk, Pfad und Namen, nicht jedoch die Erweiterung. als ob Sie getippt hätten %~dF%~pF%~nF
.)
Sie können lange Befehle auch in mehrere Zeilen aufteilen ^
:
für% F in (* .mov) do ( HandBrakeCLI.exe --preset-import-Datei "Voreinstellungsname.json" ^ -Z "Preset-Name" -i "% F" -o "% ~ nF.mp4" (andere Befehle mit "% F", "% ~ nF" usw.) )
Alle oben genannten Funktionen funktionieren an der Eingabeaufforderung (Befehlszeile). Dasselbe funktioniert in einem Batch-Skript, außer dass Sie jedes %
durch Folgendes ersetzen müssen %%
:
für %% F in (* .mov) do ( HandBrakeCLI.exe --preset-import-Datei "Voreinstellungsname.json" ^ -Z "Preset-Name" -i "%% F" -o "%% ~ nF.mp4" (andere Befehle mit "%% F", "%% ~ nF" usw.) )
Dies wurde unter Windows 7 getestet, aber ich wäre sehr überrascht, wenn es nicht unter Windows 10 funktioniert.