Как выполнить массовое извлечение объектов из файлов 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 ответа
Решение
Вот скрипт 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
переменные. Не стесняйтесь улучшать скрипт, автоматически добавляя расширения.
Используйте этот однострочник
swfextract --outputformat "extract_%06d.%s" -a 1- file.swf
Если вы хотите извлечь в каталог content
Создайте этот каталог первым:
mkdir content
swfextract --outputformat "content/extract_%06d.%s" -a 1- file.swf
Работает отлично.
Смотрите документы.