電子書籍の厳選無料作品が豊富!

applescriptでのファイル操作に関して質問させて頂きます。
宜しくお願いいたします。

現在、macOS10.8.5で、applescriptのコードを書いております。

tell application "Finder"
set mynewfile to (duplicate myfile to toDir)

のように、ファイルをコピーした後に、コピー先のファイルを別のアプリケーション(今回はphotoshop CS6)で開いて、処理を継続したいと考えています。

duplicateの戻り値は、class:document fileで、mynewfileから
/Users/macbook/Desktop/toDir/myfile.jpg
のようなUNIX形式のパステキストを作って渡せば良いと考えたのですが、どうしても取得できません。

ダメもとで、
tell application "Adobe photoshop CS6"
open mynewfile
などとしても、エラーで動きませんが、

単純に、
open mynewfile
とすると、拡張子に対応したデフォルトのアプリケーションでファイルが開きます。

そこで以下2つ質問をさせて頂きます。

質問1)
コピーしたファイルを指定したアプリケーションで開くためには、どのような処理を記述すれば良いのでしょうか?

質問2)
duplicateの戻り値から、UNIX形式のパステキストを得るためには、どのような処理が適切でしょうか?

applescriptに詳しい方、どうかご教示をお願いいたします。

A 回答 (2件)

「ピクチャ」フォルダにある画像ファイル「Photo.tiff」を、アプリケーション「プレビュー」で開くスクリプトは、以下になります。



tell application "Finder"
open POSIX file "/Users/(username)/Pictures/Photo.tiff" using POSIX file "/Applications/Preview.app"
end tell

このスクリプトを参考にすれば、あなた自身で問題を解決できるのではないでしょうか?
    • good
    • 0
この回答へのお礼

tell application "Finder"
set mynewfile to (duplicate myfile to toDir)
open mynewfile using POSIX file "/Applications/Adobe Photoshop CS6/Adobe Photoshop CS6.app"

で、見事開きました!
本当にありがとうございます!心より感謝御礼申し上げます。

ひとつ疑問が湧いたのですが、このアプリを指す絶対パスの記述は、もう少し柔軟性をもたせて、記述する方法はあるのでしょうか?
この記述ですと、私の今使っているmacでしか動作しなさそうですので、例えば、あくまでも感覚的なコードになりますが、

【絶対、動きませんが】
set psdApp to application "Adobe Photoshop"
tell application "Finder"
set mynewfile to (duplicate myfile to toDir)
open mynewfile using psdApp

みたいに、はじめにそのmacで使われているデフォルトのPhotoshopのバージョンの参照を取得しておいて、それを指定して実行する等と言った感じです。

お分かりでしたら、ヒントだけでも頂けましたら幸いです。
何卒、宜しくお願い申し上げます!

お礼日時:2014/09/28 16:20

記載されたアプリが見つからない場合


Adobe photoshopはどこにありますか?
と聞かれて、指定したらスクリプト内容も書き換わるのでは?
    • good
    • 0
この回答へのお礼

ありがとうございます。
確かにそうでしたね。

呼び出しを
application id "com.adobe.photoshop"
で、ためしたところ、スムーズに開くようです。

複数バージョンのphotoshopが混在してても、application id で指定すると、最上位バージョンが自動的に指定されるということなのでしょうか?

お礼日時:2014/10/03 13:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!