Есть третий (и, возможно, гораздо более простой) вариант. Если вы хотите раскрутить несколько экземпляров одной программы, использование командного процессора в стиле Unix, такого как Xargs или GNU Parallel, может сделать этот процесс довольно простым.
Есть клон win32 Xargs под названием PPX2 , который делает это довольно просто.
Например, если вы хотите перекодировать каталог видеофайлов, вы можете выполнить команду:
dir /b *.mpg |ppx2 -P 4 -I {} -L 1 ffmpeg.exe -i "{}" -quality:v 1 "{}.mp4"
Разбирая это, dir /b *.mpg
захватывает список файлов .mpg в моем текущем каталоге, оператор |
передает этот список в ppx2, который затем строит серию команд для параллельного выполнения; 4 за один раз, как указано здесь оператором -P 4
. Оператор -L 1
указывает ppx2 отправлять только одну строку из нашего каталога в ffmpeg за один раз.
После этого вы просто пишете свою командную строку (ffmpeg.exe -i "{}" -quality:v 1 "{}.mp4"
), и {}
автоматически подставляется для каждой строки списка каталогов.
Это не универсально применимо к каждому случаю, но намного проще, чем использование обходных путей командного файла, описанных выше. Конечно, если вы не имеете дело со списком файлов, вы также можете передать содержимое текстового файла или любой другой программы на вход pxx2.