私はかなり新しいプログラマーです。私はかなり高度なことを試みていますが、良い挑戦を楽しんでいます。:~) Adobe の ESTK (ExtendScript Toolkit) を使用して、InDesign CS6 用の複雑なスクリプトを作成しています。ほとんどのチュートリアルを完了し、かなりのことを学びましたが、今は壁にぶつかっています。
特定のフォルダーが特定の基準を満たしているかどうかを検出するスクリプトが必要です。満たされている場合は、そのフォルダーを詳しく調べ、そのすべてのサブフォルダーを数え、それらの各サブフォルダー内の各 .indd ファイルを開き、実行します。それぞれのタスク。今日スクリプトを開始したばかりで、これまでのところ次のとおりです。
var getDataDialog = app.dialogs.add({name:"Job Info"});
with(getDataDialog){
// Add a dialog column.
with(dialogColumns.add()){
// Create the order number text edit box.
var orderNumTextEditBox = textEditboxes.add({minWidth:80});
}
}
// Show the dialog box.
var dialogResult = getDataDialog.show();
if(dialogResult == true){
// Get the order number and put it in the variable "orderNum".
var orderNum = orderNumTextEditBox.editContents;
// Get the first three numbers of the order number and put it in "orderPrefix".
var orderPrefix = orderNum.substr(0,3);
// Remove the dialog box from memory.
getDataDialog.destroy();
// Store the folder prefix into "folderPrefix".
var folderPrefix = "/g/ ArtDept/JOBS/" + orderPrefix + "000-" + orderPrefix + "999/"
// Open the document with the order number.
var myDoc = app.open(File(folderPrefix + orderNum + " Folder/" + orderNum + ".indd"), true);
}
else{
getDataDialog.destroy();
}
したがって、入力された注文番号が「405042」の場合、「405000-405999」フォルダを検索し、次に「405042 フォルダ」というパッケージ化されたフォルダを検索し、その中の .indd ファイルを開きます。問題は、フォルダー内に複数のパッケージがある場合があることです。たとえば、次のようになります。
405000-405999/405007/405007_N10/405007_N10.indd
405000-405999/405007/405007_C12/405007_C12.indd
405000-405999/405007/405007_Orange/405007_Orange.indd
スクリプトでこれらの各ファイルを順番に開き、それらに対していくつかのタスクを実行する必要があります。可能だと確信していますが、それをコーディングする方法を知る必要があるだけです。