これは Adobe ExtendScript の JavaScript です。基本的に、AppleScript でできるように、ユーザーの設定を保存するためにスクリプトに永続変数が必要ですproperty
。私が考えることができる唯一の方法は、スクリプトが自分自身を で上書きすることFile.write()
でした。
var MY_PROPERTY = true;
function reassignProperty(propName, propValue) {
var thisFile = new File($.fileName);
if (thisFile.open("r")) {
var myScript = thisFile.read();
thisFile.close();
// Look for the property declaration and overwrite with new value
var searchStr = new RegExp("(var " + propName + " = )" + ".+");
var newScript = myScript.replace(searchStr, "$1" + propValue + ";");
thisFile.open("w");
thisFile.write(newScript);
thisFile.close();
}
}
reassignProperty("MY_PROPERTY", "false");
私が知る限り、これはうまくいきました。しかし、それは安全ですか?私の直感では、永続的な変数を保持するためのよりクリーンな方法があるはずですが、存在しない場合は、自己上書きスクリプトに潜在的な問題があるかどうかを知りたいだけです。