• 締切済み

AppleScriptで特定のファイルを特定のアプリで開く

現在FileMakerとAppleScriptを組み合わせて開発を行っています。 下記のような作業をしたくコーディングをしたのですが、うまく動作させる事ができません。何が原因なのでしょうか? 作業:特定のフォルダに入っているパワーポイントのファイルを特定のバージョンのパワーポイントで開きたい。 環境:MacOS X 10.5.6、PowerPC G4、FileMaker 9 コード: tell application "Finder" repeat with i in folder "Data" of startup disk if file type of i = "SLD8" then i select open selection using file "Microsoft PowerPoint" of folder "Microsoft Office 2004" of folder "Applications" of startup disk end repeat end tell 問題1:ファイルを開く事はできるが「Macintosh HD:Data:test.pptはUser1が編集中です。読取専用で開きますか?」とエラーが表示され、延々とループしてしまう。 問題2:そもそもPPTのファイルを開いてくれない時がある。 PPTファイルのフルパスを指定すれば、問題なく開く事ができるのですが、 業務都合上色々なファイル名のPPTが入ってくるため、対象フォルダの中をFileTypeで探してオープンしています。 そもそものコードの部分から間違っているなどご指摘頂けると幸いです。 何か解決方法をお持ちの方、お力をお貸し下さい。 よろしくお願い致します。

みんなの回答

回答No.1

--ファイル名末尾の拡張子らしき物を判定 -- 単純に最後の4文字がpExtと一致するかを判定 on mFileNameExtChk(pFileName, pExt) set len to length of pFileName set ext to text (len - 3) thru len of pFileName --display dialog ext if pExt = ext then return true else return false end if end mFileNameExtChk on run set appPath to "\"/Applications/iWork '08/Keynote.app\"" set extStr to ".ppt" tell application "Finder" repeat with i in folder "テストデータ日本語パス" of startup disk --keynote(08)で試しています -- Keynote(08)は".ppt"書き出し時にファイルタイプ値"SLD8"を設定しないようです -- 手動でタイプ設定して試しました -- --Keynote、もしくは他OS環境からやってくる".ppt"の場合 -- リソースフォークが無くてタイプ判定を素通りすると思います -- タイプ判定、拡張子判定、両方行った方が確実です i select set fileNameStr to POSIX path of (selection as text) set filePath to "\"" & fileNameStr & "\"" set cmdStr to "open -a " & appPath & " " & filePath if file type of i = "SLD8" then --確実に開けるようにシェルスクリプトとして実行してみました --コマンド:open -a App File do shell script cmdStr else if (my mFileNameExtChk(fileNameStr, extStr)) then do shell script cmdStr end if end if end repeat end tell end run

関連するQ&A

  • indesignでのapplescript

    はじめまして、indesign CS3で使用するapplescriptに関しての質問です。 自動で出力をしてくれるスクリプトを作りたいと思い、やってみたのですがうまくいきません。 色々調べて作ってみたのがこれです。 tell application "Finder" set filesInFolder to files in (choose folder) repeat with theFile in filesInFolder if name extension of theFile is "indd" then -- 拡張子を指定 set priset to "B4" -- プリントプリセットを指定 tell application "Adobe InDesign CS3" activate open theFile tell document 1 print using priset without print dialog close saving no end tell end tell end if end repeat end tell ここまではなんとかできたのですが、現段階では1階層下までのinddドキュメントしか読取ってくれません。 1見開きごとにパッケージしてできた子フォルダを一つの親フォルダにまとめることが多いので、フォルダ▶フォルダ▶.inddになります。 これでは親フォルダを指定したときに2階層下の子フォルダに分かれて入っている複数の.inddを一気に出力することができません。 何か解決策はありませんでしょうか? また、現段階に関してのご指摘もございましたらよろしくお願いします。

  • AppleScript、ファイルの移動について

    初心者です、以下の文で、デスクトップにある test.txt というファイルをアプリケーションフォルダーにある test というフォルダーに移動させたいのですが、エラーが出ます。 ------------------------------ tell application "Finder" set tgtFile to file "test.txt" of desktop move tgFile to folder "test" of applications folder with replacing end tell ------------------------------ エラー文 error "folder \"test\" of applications folder を取り出すことはできません。" number -1728 from «class cfol» "test" of At Ease applications folder ------------------------------ しっかりアプリケーションフォルダーにtestというファイルはあります。 改善法を教えてください<(_ _)>

    • ベストアンサー
    • Mac
  • AppleScriptがエラーになる

    osx10.8.4  AppleScriptエディタ2.5.1 にて以下の内容でFileMaker11へテキストデータを貼付けようとしましたところ ----------------------- set dbName to "test.fp7" tell application "FileMaker Pro Advanced" activate tell database dbName set contents of field "myText" to "ABC" end tell end tell ----------------------- error "FileMaker Pro Advanced でエラーが起きました:オブジェクトが見つかりません。 ----------------------- とのエラーが出ました。 ちなみにosx10.6.8 AppleScriptエディタ2.3ではテキストは読み込まれます。 osx10.8.4 の仕様が変わったのでしょうか 2・3日前にosのバージョンアップをしましたがそれが関係していたのでしょうか。 どなたかご存知の方がおられましたらご教授下さい。

    • ベストアンサー
    • Mac
  • AppleScriptで「選択」して「選択したものをリネーム」

    AppleScriptで、あるフォルダ内のファイルを解凍してFTPでサーバーにアップするという処理をさせようとしています。 tell application "Finder" activate select folder "ChangeData" of startup disk open selection select document file "DATA20091014.lzh" of folder "CangeData" of startup disk end tell ここまでは「コンパイル」を実行しても正しくプログラムに出来たのですが、ご覧の通り、希望の動作をさせるには記述が足りません。 文法がめちゃくちゃなのを承知で敢えて書きますと、 tell application "Finder" activate select folder "CaspaData" of startup disk select all contents of selection ←選択したフォフダの中身を全て選択する(記述法不明) rename selection to "today.lzh" ←選択したファイルの名前を「today.lzh」に書き替える(記述法不明) select all contents of selection ←選択したフォフダの中身を全て選択する open selection ←ここでファイルが解凍されます select document file "today.lzh" of folder "CaspaData" of startup disk delete selection ←選択したファイルを捨てる select all contents of selection ←選択したフォフダの中身を全て選択する(記述法不明) rename selection to "Data.csv" ←選択したファイルの名前を「Data.csv」に書き替える(記述法不明) end tell "CaspaData"というフォルダの中にはメールソフトが自動的に保存したファイル1個だけが入っているので、こうすることによって、 1. フォルダ内のファイルが何と言う名前でも"today.lzh"に書き替える 2. today.lzhを解凍する 3. today.lzhをゴミ箱に捨てる というプロセスを自動処理し、フォルダ内にはメールソフトが保存したアーカイブの解凍後のファイルだけが残るようにしたいという訳です。 最終的には、このリネームしたCSVをNetFinderというFTPソフト(スクリプト対応ソフトです)で希望の場所にアップロードしたい訳なのですが…。 http://force4u.cocolog-nifty.com/skywalker/2008/01/applescript_ae09.html こんなところを見ると、そこに存在するファイルの名前が何であっても目的の名前に変えることの出来るスクリプトも組めるんだなということは解るんですが、私には知識がなくて内容が理解できないので、スマートではないことは承知の上で「1つしかファイルがないのに"全て選択"で選択してリネーム」という手段をとろうとしています。 ここで、上に「記述法不明」と書いた部分は、Applescriptではどう書けばいいのでしょうか?

    • ベストアンサー
    • Mac
  • AppleScriptでデキストデータをExcel

    AppleScriptでテキストファイルをExcelで開きたいのですが、 区切り文字をスペースと|の2つを指定したいのです。 スペースだけなら tell application "Microsoft Excel" open text file filename ¬ "Mac HD:Folder:File.txt" data type delimited with space end tell とできたのですが、|を組み合わせた場合がわかりません。 ご教授ください。

    • ベストアンサー
    • Mac
  • applescript で pdfを扱いたいんです。

    applescriptで、pdfファイルをアクロバットリーダ6で開けるスクリプトを書いたのですがうまくいきません。どなたか教えて頂きませんか? プレビューで開けるならopen一発で簡単なのですが、アクロバットリーダで開けたいのです。 僕は以下のようなのを書いています。 もしや、アクロバットはpdfを開けるイベントハンドラは対応して無いのでしょうか? tell application "finder" open file "01.pdf" of desktop using application "Adobe Reader 6" end tell

    • ベストアンサー
    • Mac
  • AppleScriptからFileMaker起動

    AppleScriptからFileMaker Pro12を起動して、共有ファイルを開きたいのですが、以下の記述ではタイムアウトエラーとなってしまいます。 FileMakerは起動していますが、起動時にファイルを選択するダイアログが開いた状態になっていることが原因かな?と思うのですが、どのようにしたらよいでしょうか? ---------------------------------------- tell application "FileMaker Pro Advanced" activate getURL "fmp://ユーザー名:パスワード@サーバーのIPアドレス/共有ファイル名" end tell ---------------------------------------- サーバー:Mac mini Server OS X10.8 +  FileMaker Server12 アドバイスを宜しくお願い致します。

    • ベストアンサー
    • Mac
  • AppleScriptで教えて欲しいです。

    現在、clipboardと同じ名前のフォルダー1つ(例:ABC123)のみ処理する。 →これを、clipboardの名前を含むフォルダー1つ(例:ABC123.4)のみ処理する。 に変更したいです。 ちなみにclipboardの名前を含むフォルダーは、1つしか存在しません。 申し訳ありませんが、実際の業務で使用している下記のスクリプト(無駄な部分も多少あるかと思いますが)を出来る限り変更を加えず、可能でしょうか? 無理であれば、大幅変更も可能ですので、ご教授の程、宜しくお願い致します。 global Num global fp set Num to the clipboard tell application "Finder" my shikyuseihan2data() --支給製版2課データ try duplicate fp to folder "data" of disk "HD" move fp to folder "jus:5)製版行き: 2課使用済" end try end tell --アクセス権 tell application "Terminal" activate do script with command "chmod -R 775 /Volumes/HD/data" quit end tell --支給製版2課のデータ on shikyuseihan2data() tell application "Finder" set x to name of every disk if "jus" is in x then else mount volume "afp://10.1.30.10/jus/" end if try set fp to "jus:5)製版行き:" & Num & ":" as text set fp to fp as alias end try end tell end shikyuseihan2data

    • ベストアンサー
    • Mac
  • AppleScript 添削希望

    以下のスクリプトを1回実行するとデスクトップにフォルダ「t01」ができるのですが、 2回目以降「t02」とはならず、「test」のままで止まってしまいます。 OS 10.5.8 です。どこか間違ってるのでしょうか。 tell application "Finder" duplicate folder "test" of folder "_test" of desktop to desktop with replacing try set name of folder "test" of desktop to "t01" on error try set name of folder "test" of desktop to "t02" on error try set name of folder "test" of desktop to "t03" end try end try end try end tell

    • ベストアンサー
    • Mac
  • AppleScriptでpkgファイルの実行方法

    AppleScriptであるpkgファイルを実行させてインストール画面を表示させたいのですがどのように記述すればよいでしょうか。 tell application "Install" open "file.pkg" end tell ではできませんでした。 宜しくお願い致します。

    • ベストアンサー
    • Mac