質問: 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ではどう書けばいいのでしょうか?
回答: いくら applescript が取っつきやすいとは言っても、ある程度勉強しないと無理ですよ。 http://www.tonbi.jp/applescript/intro/basic.html このあたりを参考に、基礎を勉強してください。そうすれば書かれているリンク先の内容も理解できるでしょう。 それまでは automator でガマンしておきましょう。フォルダ内のファイルのリネームくらいなら automator で処理できるはずです。 これだけでは何なので、「フォルダ内の全ファイルをリネーム」という部分だけ。 全ファイルをワンアクションでリネームする事はできません。フォルダ内の全アイテムについて一つずつリネーム処理を繰り返すという方法を取ります。具体例は以下。この場合は、単に全ファイルの末尾に .lzh を付けるだけです。 set thefiles to every file of thefolder repeat with afile in thefiles set name of afile to ((name of afile) as string) & ".lzh" end repeat