クリエイター手抜きプロジェクト[268]AfterEffects CS3/CS4/CS5編 複数のプロジェクトから検索しレポートとして保存する/古籏一浩

投稿:  著者:  読了時間:5分(本文:約2,300文字)


今回は複数のプロジェクトから検索し、レポートとして保存するものです。前回のスクリプトは、一致したプロジェクトファイルがある場合に開くだけのものでしたが、場合によってはどこにどのような名前のものが使われているか知りたい場合もあります。

以下のスクリプトは、指定されたフォルダ以下にある全てのフォルダ内にあるAfterEffectsのプロジェクトを検索し、レポートファイルとして保存します。その際、項目がフッテージファイルの場合には、ファイルのパスも出力します。



// サブフォルダ内にある全てのプロジェクトを開いて検索しレポートファイルとして保存(部分一致で全てリストアップ)
(function(){
var findName = prompt("検索するフッテージ/フォルダ名の一部を入れて下さい", "コンポ");
if (!findName) return;
var folderObj = Folder.selectDialog("親フォルダを選択してください");
if (!folderObj) return; // キャンセルされたら処理しない
var savefile = File.saveDialog("保存するレポートファイル名を入れて下さい");
if (!savefile) return;
if (!savefile.open("w")){
alert("レポートファイルを保存できません");
return;
}
savefile.writeln("検索文字:"+findName);
savefile.writeln();
var flag = false; // フラグと開くファイルを共用
getFolder(folderObj);
if(!flag) {
savefile.writeln("---------------------------");
savefile.writeln(findName+"の名前を持つ項目は見つかりませんでした");
}
// フォルダ内の一覧を取得
function getFolder(folderObj){
var fileList = folderObj.getFiles();
for (var i=0; i<fileList.length; i++){
if (fileList[i].getFiles) {
getFolder(fileList[i]);
}else{
if (fileList[i].name.indexOf(".aep") > -1){ // .aepの文字が含まれる場合に処理
app.open(fileList[i]);
var pName = File.decode(fileList[i].name);
savefile.writeln("プロジェクト名:"+pName);
for(var j=1; j<=app.project.items.length; j++){
var iName = app.project.item(j).name;
if (iName.indexOf(findName) > -1) {
try{
var fName = " ("+(File.decode(app.project.item(j).file.fullName))+")";
}catch(e){fName="";}
savefile.writeln(iName+fName);
flag = true; // 何かが見つかったのでフラグを立てる
}
}
app.project.close(CloseOptions.DO_NOT_SAVE_CHANGES);
savefile.writeln();
}
}
}
}
})();


上記のスクリプトは部分一致になっていますが、完全一致で検索したい場合は以下のように変更してください。

if (iName.indexOf(findName) > -1) {
 ↓
if (iName == findName) {


【古籏一浩】openspc@alpha.ocn.ne.jp
< http://www.openspc2.org/ >

プログラム作るのと漫画描くのどちらが大変か......。今のところ漫画の方が大変。多分これ、慣れとかじゃない別のものが要求される感じ。絵が描けるかどうかより、もっと違う部分が大変。漫画家には好きで才能ないと慣れないなあ、と実感。

・Retro Driver【6話まで書いた】
< http://www.openspc2.org/reibun/comipo/RetroDriver/story01/ >

・HTML5+JavaScriptアイデア&実践サンプル【来週発売】
< http://www.amazon.co.jp/dp/4048704486 >

・JavaScriptコーディング ベストプラクティス【来週発売】
< http://www.amazon.co.jp/dp/4844361791 >

・Google API Expertが解説するHTML5ガイドブック
< http://www.amazon.co.jp/dp/4844329278 >

・ハイビジョン映像素材集
< http://www.openspc2.org/HDTV/ >

・Adobe Illustrator CS3 + JavaScript 自動化サンプル集 発売中
< http://www.openspc2.org/book/PDF/Adobe_Illustrator_CS3_JavaScript_Book/ >