コモノExtendScript100本ノック

超初心者のDTPオペレーターが週にひとつスクリプトを書くブログ

005.【ESTK】フォルダを一括作成

書いたコード

/* 
以下のようなテキストデータを作成する

C:/Users/ユーザー名/Desktop/01_中国/
C:/Users/ユーザー名/Desktop/02_香港/
C:/Users/ユーザー名/Desktop/03_台湾/
 
* "/"は"\"でも可 
* パスの前後にダブルクオーテーションはつけない
*/

var txtObj = File("C:/Users/ユーザー名/Desktop").openDlg("txtを指定してください","*.txt");
if (txtObj==null) {
    alert("キャンセルしました");
    } else {
    txtObj.open("r");
    var txtStr = txtObj.read();
    var charChk = /[\*\?"<>\|]/g.test(txtStr);
    if(charChk){
        alert ("フォルダ名に使用できない文字が含まれています");
        } else {
    txtStr = txtStr.replace(/\\/g,/\//);
    var txtLines=txtStr.split(/\r\n|\r|\n/);
    var txtLinesCnt = txtLines.length;
    for (i=0; i<txtLinesCnt; i++){ 
        folderName = txtLines[i];
        var folderObj = new Folder(folderName);
        folderObj.create();
        }
 alert("完了");
   }
}

メモ

疑問点

  • このスクリプトを動かしたあと使用したテキストデータを削除しようとしても、ESTKを終了させないかぎり削除できない。
    アプリケーションを落とさないと一回開いたデータが消せないことって、特にAdobe製品に限らずよくあるんだが、何か対策はあるんだろうか。

参考