Как выполнить массовое извлечение объектов из файлов swf (Adobe Flash) с помощью swfextract?

swftools представляют собой уникальный набор инструментов, но им не хватает удобства для пользователя. Они даже не могут перебирать предоставленные объекты:

Допускается только один файл. Вы поставили как минимум два.

$ swfextract file.swf -i 1,2
warning! You should use the -P when extracting multiple objects

$ ls
file.swf  output.swf

$ swfextract file.swf -i 1,2 -P

$ ls
file.swf  output.swf
2
задан 13 February 2015 в 18:20

2 ответа

Используйте этот однострочный

swfextract --outputformat "extract_%06d.%s" -a 1- file.swf

Если вы хотите извлечь в каталог content, сначала создайте этот каталог:

mkdir content
swfextract --outputformat "content/extract_%06d.%s" -a 1- file.swf

Работает хорошо.

См. документы .

0
ответ дан 13 February 2015 в 18:20

Вот скрипт bash для его автоматизации:

#!/bin/bash
find_ext=".swf"
out_ext=".jpg"

[ "$1" == "" ] && echo "Add type arguments from swfextract: -j -p -f -F -m -i" && exit 1 

for arg in $@; do
    for file in `find . -name "*$find_ext"`; do 
    ids="`swfextract $file | grep "\[$arg\]" | sed 's#^.*ID(s) ##g' |  sed 's#, # #g'`"
        for id in $ids; do
            swfextract "$file" $arg $id -o "${file}_${id}${out_ext}"
        done
    done
done

Не забудьте проверить переменные *_ext. Не стесняйтесь улучшать скрипт, автоматически добавляя расширения.

0
ответ дан 13 February 2015 в 18:20

Другие вопросы по тегам:

Похожие вопросы: