InDesignでJavaScript その25?
OS9時代にAppleScriptで作ったファイル名変更ScriptのJavaScript版。
InDesignから起動するけどInDesignではなにもしなかったりします。
使い方の説明。
例えばEPS画像のファイル名を変更したいと思ったとします。
まずテキストエディタなどで変更したいファイル名のリストを作ります。
1行1ファイル名で入力してください。
んで、Script起動。
するとダイアログが出るのでEPS画像の入ったフォルダを指定する。
続いてさっき作ったリストを選択。
するとEPS画像の名前がリスト通りに変更されます。
注意点としてはFinderとJavaScriptでファイルのソートが違う可能性があるので
ファイル名の先頭に数字で合番を振る等しておかないと
しっちゃかめっちゃかになる可能性大です。
需要、あるのか?
まぁこんなこともできるよ、ってお知らせです。
~~~~~~~~~~~~~~~
var TAB = String.fromCharCode(9);
var LF = String.fromCharCode(10); //改行
var EPSFolder = Folder.selectDialog("EPS画像のあるフォルダを選択してください") ;
var RenameFileList = File.openDialog("テキストを選択してください") ;
//テキストを一気に読み込むついでに行数も数えておく
var regObj = new RegExp(LF,"g"); //正規表現で目的の文字を探す
var fileObj = new File(RenameFileList);
var flag = fileObj.open("r") ; //ファイルを読み込みモードで開く
if (flag == true) {
var lineAll = fileObj.read() ; //ファイル内容を一度に読み込む
var LFCount = lineAll.match(regObj) ;
//今回のコメント数
if (LFCount == null) { //1行しかなかったら
var comment = 1; //LFの数を数える(最終行に改行がないため+1する)
} else {
var comment = LFCount.length + 1; //LFの数を数える(最終行に改行がないため+1する)
}
}
fileObj.close();
var fileObj = new File(RenameFileList);
var flag = fileObj.open("r") ; //ファイルを読み込みモードで開く
if (flag == true) {
for (i = 0 ; i < comment ; i++) {
var line = fileObj.readln() ; //テキストファイルから1行読み込み変数に代入
var line = line.split(TAB) ; //タブで区切る
srcFilename = EPSFolder + "/" + line[0];
newFilename = line[1];
srcFileObj = new File(srcFilename);
srcFileObj.rename(newFilename);
}
}
fileObj.close() ;
alert("終了")
~~~~~~~~~~~~~~~