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
变量。请随意通过自动添加扩展来改进脚本。