Это JavaScript для Adobe ExtendScript. По сути, я хочу, чтобы в скрипте была постоянная переменная для хранения настроек пользователя, как вы можете это сделать с помощью 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");
Насколько я мог судить, это сработало. Но безопасно ли это? Мой инстинкт инстинкт говорит мне, что должен быть более чистый способ иметь постоянные переменные, но если нет, я просто хочу знать, есть ли потенциальные проблемы с самоперезаписывающим сценарием.