Хорошо, я думаю, у вас есть куча файлов, таких как
ant.mov bug.mov cat.mov dog.mov ︙
в каталоге (он же папка), и вы хотите сделать
HandBrakeCLI.exe (бла-бла-бла) -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 ︙
для всех *.mov
файлов. Это довольно просто:
для% F в (* .mov) выполните HandBrakeCLI.exe (бла-бла-бла) -i "% F" -o "% ~ nF.mp4"
В for %F in (*.mov)
пробегах цикл, в котором %F
принимает каждое применимое *.mov
имя. Затем do
для каждого файла выполняется следующая за ним команда, которая, %F
очевидно, заменяется .mov
именем файла. (Примечание: F
регистр чувствителен.) (Вы можете обойтись без кавычек - то есть, скажем, просто %F
, а не "%F"
- но тогда произойдет сбой, если у вас есть имена файлов с пробелом (ами) или другие специальные символы в них) .) %~nF
заменяются на п Ame части файла (не включая расширение), поэтому %~nF.mp4
становится вашим именем выходного файла.
Возможно, вы захотите разбить это на несколько строк, потому что ваша фактическая команда слишком длинная и / или потому что вы хотите делать другие вещи в цикле. Вы можете сделать это с помощью скобок:
для% F in (* .mov) do ( HandBrakeCLI.exe (бла-бла-бла) -i "% F" -o "% ~ nF.mp4" (другие команды, содержащие "% F", "% ~ nF" и т. Д.) )
Введите, for /?
чтобы увидеть список всех ~
кодов. (Например, %~dF
дает вам букву диска и %~pF
путь. В документации неясно, можно ли комбинировать модификаторы; например, %~dpnF
диск, путь и имя, но не расширение - как будто вы напечатали %~dF%~pF%~nF
.)
Вы также можете разбить длинные команды на несколько строк с помощью ^
:
для% F in (* .mov) do ( HandBrakeCLI.exe - preset-import-file "preset-name.json" ^ -Z "имя-пресета" -i "% F" -o "% ~ nF.mp4" (другие команды, содержащие "% F", "% ~ nF" и т. д.) )
Все вышеперечисленное работает в командной строке (командной строке). То же самое работает в пакетном скрипте, за исключением того, что вы должны заменить каждый %
на %%
:
для %% F в (* .mov) do ( HandBrakeCLI.exe - preset-import-file "preset-name.json" ^ -Z "имя-пресета" -i "%% F" -o "%% ~ nF.mp4" (другие команды, содержащие "%% F", "%% ~ nF" и т. д.) )
Это проверено на Windows 7, но я был бы очень удивлен, если бы это не работало на Windows 10.