• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:AppleScriptで「選択」して「選択したものをリネーム」)

AppleScriptでフォルダ内のファイルを解凍してFTPでアップする方法

このQ&Aのポイント
  • AppleScriptを使用して、特定のフォルダ内のファイルを解凍し、FTPを使用してサーバーにアップロードする方法について質問があります。
  • 調査したところ、Applescriptで特定のフォルダ内のファイルを選択し、名前を変更し、解凍することができるようです。
  • 質問者は、フォルダ内のファイルが1つだけであるため、全てを選択してリネームする方法を試していますが、具体的な記述方法が分からないとのことです。

質問者が選んだベストアンサー

  • ベストアンサー
  • capy2009
  • ベストアンサー率72% (337/465)
回答No.1

いくら 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

chack
質問者

お礼

リネーム方法のサンプル、どうもありがとうございました。 もちろん、こういったものは勉強しながらでないと使えないので、こうして質問させて頂いては知識を取り込んで組み合わせて応用の幅を広げています。 ご提示頂いた基本編のページは何度か見たことがありましたが、こういうステップ・バイ・ステップのものでは私は結局理解できず、色々サンプルを押してて頂いては自分なりに改造して行くうちに逆に基礎に辿り着くというのがいつものパターンで、JavascriptもPerlも、そうやって徐々に自力で組めるようになりました。 今回は、教えて頂いたサンプルから、下のように組んで実用に成功しました。 「専門家」の方からすればお笑いぐさのスクリプトだと思いますが…。 tell application "Finder" activate set theFiles to every file of folder "ChangeData" of startup disk repeat with aFile in theFiles set name of aFile to "aaaa.lzh" end repeat open document file "aaaa.lzh" of folder "ChangeData" of startup disk repeat delay 5 exit repeat end repeat delete document file "aaaa.lzh" of folder "ChangeData" of startup disk end tell tell application "Finder" select folder "ChangeData" of startup disk open selection set theFiles to every file of folder "ChangeData" of startup disk repeat with aFile in theFiles set name of aFile to "test.csv" end repeat end tell tell application "URL Access Scripting" upload file "Macintosh HD:ChangeData:test.csv" to "ftp://aaaa:pass@aaaa.jp//www/aaaa/cgi-bin/" replacing yes without binhexing quit end tell tell application "Finder" activate repeat delay 5 exit repeat end repeat set theFiles to every file of folder "ChangeData" of startup disk repeat with aFile in theFiles delete aFile end repeat end tell

関連するQ&A