擅长:python、mysql、java
<h2>选项1(BridgeTalk)</h2>
<p>我不得不做这样的事情来运行一个外部的PNG处理器从Photoshop和Illustrator。<strike>这两个应用程序都不能从ExtendScript执行外部程序。</strike>(参见选项2。)adobebridge的<code>app</code>对象有一个<code>system</code>方法,可以在系统shell中执行命令。使用<code>BridgeTalk</code>对象,可以从Illustrator远程调用该方法。不过,你只会得到退出代码作为回报。所以您需要将程序的输出重定向到一个文件,然后在脚本中读取该文件。在</p>
<p>下面是一个使用<code>BridgeTalk</code>和Adobe Bridge运行外部程序的示例:</p>
<pre><code>var bt = new BridgeTalk();
bt.target = 'bridge';
bt.body = 'app.system("ping -c 1 google.com")';
bt.onResult = function (result) {
$.writeln(result.body);
};
bt.send();
</code></pre>
<h2>专业人士</h2>
<ul>
<li>异步</li>
<li>可以轻松检索出口代码</li>
<li>可以使用shell语法并将参数直接传递给程序</li>
</ul>
<h2>缺点</h2>
<ul>
<li>必须安装Adobe Bridge</li>
<li>adobebridge必须运行(如果需要,BridgeTalk会为您启动它)</li>
</ul>
<h2>方案2(文件.prototype.execute)在</h2>
<p>我后来发现的,不敢相信我错过了。<code>File</code>类有一个打开或执行文件的<code>execute</code>实例方法。这可能对你有用,尽管我自己还没试过。在</p>
<h2>专业人士</h2>
<ul>
<li>异步</li>
<li>内置到每个ExtendScript环境中(无进程间通信)</li>
</ul>
<h2>缺点</h2>
<ul>
<li>无法检索退出代码</li>
<li>不能使用shell语法或直接向程序传递参数</li>
</ul>