如何使用 swfextract 从 swf(Adobe Flash)文件中批量提取对象?

如何使用 swfextract 从 swf(Adobe Flash)文件中批量提取对象?

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

答案1

使用这个单行

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

如果要提取到目录content,请先创建该目录:

mkdir content
swfextract --outputformat "content/extract_%06d.%s" -a 1- file.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变量。请随意通过自动添加扩展来改进脚本。

相关内容