如何检查脚本 运行 打开的插图画家版本,以及基于该脚本的分支脚本?

How to check for version of illustrator that script is running on, and branch script based off that?

我的团队使用不同版本的 Adob​​e Illustrator,或者安装了多个版本的软件,我遇到了很多问题。

有没有办法检查作为 运行 脚本的 adobe 应用程序的版本? 特别是知道它是 32 位还是 64 位?

我需要正确定义#target 和BridgeTalk.target 以便脚本在当前打开的应用程序中运行。 (脚本是 运行 直接来自脚本文件)

我似乎找不到关于该主题的任何可靠文档。 有没有人有类似的问题并找到解决方案或解决方法? (遗憾的是,将所有adobe软件更新为单一版本是不可能的)

您可以通过调用app.version找到应用程序版本

$.writeln(app.version)  

但是好像没办法知道是32位还是64位

也许 Extendscript 帮助器对象可以为您提供更多信息。例如

$.writeln($.os)

@fabiantheblind

根据你的提示,我设计了一段代码,似乎可以解决问题(但它缺乏优雅:P)

switch(app.version.split(".")[0])
{
  case "16":
    //32 bit versions run in emulated enviorment, so the $.os returns string
    //containing 'emulation' substring. Not entierly sure it is reliable :P 
    var string = String($.os);
    if(string.indexOf("emulation") > -1) 
    {   
        $.writeln("32 bit code here");
    }
    else
    {
        $.writeln("64 bit code here");
    }
    break;

    default:
        break;
}

这将检查应用程序的版本,以及它是 32 位还是 64 位(不是 os):

$.writeln(app.version); //writes the app version
$.writeln((app.path.fsName.indexOf('Program Files (x86)') > -1)?'32 bit':'64 bit'); //writes the bit version of the app

此代码适用于您要检查的任何应用。

我能想到的唯一问题是,如果应用程序安装在其他地方,那么 Program FilesProgram Files (x86)。在这种情况下,您将不得不使用其他方法。