Hay una tercera opción (y potencialmente mucho más fácil). Si desea activar múltiples instancias de un solo programa, usar un procesador de comandos de estilo Unix como Xargs o GNU Parallel puede hacer que el proceso sea bastante sencillo.
Hay un clon win32 Xargs llamado PPX2 que hace que esto sea bastante sencillo.
Por ejemplo, si desea codificar un directorio de archivos de vídeo, puede ejecutar el comando:
dir /b *.mpg |ppx2 -P 4 -I {} -L 1 ffmpeg.exe -i "{}" -quality:v 1 "{}.mp4"
Recogiendo esta diferencia, dir /b *.mpg
agarra una lista de.los archivos mpg en mi directorio actual, el operador |
canaliza esta lista a ppx2, que luego genera una serie de comandos que se ejecutarán en paralelo; 4 a la vez, como se especifica aquí por el operador -P 4
. El operador -L 1
le dice a ppx2 que solo envíe una línea de nuestra lista de directorios a ffmpeg a la vez.
Después de eso, simplemente escriba su línea de comando (ffmpeg.exe -i "{}" -quality:v 1 "{}.mp4"
) y {}
se sustituye automáticamente por cada línea de su listado de directorio.
No es universalmente aplicable en todos los casos, pero es mucho más fácil que usar las soluciones de archivo por lotes detalladas anteriormente. Por supuesto, si no está tratando con una lista de archivos, también puede canalizar el contenido de un archivo de texto o cualquier otro programa a la entrada de pxx2.
Bien, gracias. Debería haber leído cada entrada de 'help' cuidadosamente :) – RichN
En realidad tuve problemas con esto el otro día. Tuve que abrir 30 ventanas del explorador para una prueba de rendimiento. No funcionó y no fue lo suficientemente importante como para que lo investigara ... comencé a buscar en esa ventana y varias horas después, cuando la cerré, ¡otra apareció! Y yo estaba como qué demonios, lo cerré ... ¡Otro apretó! ¡Después de 4-5 ventanas y mucho de lo que noté, noté que el archivo por lotes seguía en funcionamiento! –
Self-advertising descarado: una vez creé un lote que puede funcionar como un tipo de grupo de subprocesos, solo para procesos: http://stackoverflow.com/questions/672719/parallel-execution-of-shell-processes/676667 # 676667 – Joey