Top > おぼえたこと > AppleScript編

ドラッグ&ドロップで起動

AppleScriptで作られたものに、ファイルをドラッグ&ドロップで処理をさせる事が出来ます。
たとえば、複数のファイルを処理する場合などにも使えます。

On Open dorp_Items
 tell application "Finder"
   set i to 0
   Repeat with obj in dorp_Items
    set i to i + 1
    set name of obj to ((i as string) & (name of obj) as string)
   end repeat
 end tell
end open

Download: ファイル名連番付加スクリプト(Classic用)

上のスクリプトを記述して、アプリケーション形式で保存をしてみて下さい。その際に、「初期画面を表示しない」にチェックを入れるのを忘れないで下さい。

保存出来たアプリケーションに、何でも良いのでファイルをドラッグ&ドロップしてみて下さい。
ファイル名の頭に数字が付いているはずです。
そうこれで、ファイル名に連番を付加するアプリケーションの出来上がりです。
こういった、アプリケーションをドロップレットという事もあります。

スクリプト解説

●On Open 変数名

end Openの間に命令文を書き、アプリケーション形式で保存すればドラッグ&ドロップで起動するAppleScriptが出来てしまうという事です。

On Open dorp_Items
 命令文
end open

変数dorop_Itemsには、ドラッグされたファイルの情報が入ります。
当然、複数のファイル情報が入りますので、処理する場合にはひとつひとつを取り出しながら処理しなければなりません。

●繰り返し命令

AppleScriptの繰り返し命令はRepeatを使います。

Repeat 永遠に繰り返す
repeat
命令文
end [repeat]
Repeat n times 指定された回数だけ繰り返す
repeat integer(数字を入れる)
 命令文
end [repeat]

例)
repeat 10
 beep
end repeat

beep音が10回鳴ります。

Repeat until 条件を満たす迄繰り返す
repeat until boolean(ループ脱出条件を満たす式)
 命令文
end [repeat]

例)
リストの中から"あか"という言葉を探します。
set colorList to {"あお","きいろ","あか","しろ"}
set i to 1
repeat until item i of colorList is "あか"
 set i to i + 1
end repeat
display dialog "あか色は" & i & "番目です。"

repeat文の最初で条件判断をしているので、"あか"が出て来た場合、それに続くrepeat文内の命令は行われない。

Repeat while 条件に合う間は繰り返す
repeat while boolean(ループ継続条件を表す式)
 命令文
end [repeat]

例)
set kotae to "いいえ"
repeat while kotae is "いいえ"
display dialog "貴方の性別は男性ですね?" buttons {"はい","いいえ"} default button 1
set kotae to button returned of the result
end repeat

はいという答えが返る迄質問を繰り返します。

Repeat with 〜 from 〜 to 〜 初期値から終了値迄繰り返す
repeat with 変数 from 初期値 to 終了値 [by 飛び数字]
 命令文
end [repeat]

例1)
set Total to 0
repeat with i from 1 to 100
set Total to Total + i
end repeat

Totalには1から100まで足した数が代入されます。
結果:5050

例2)
set Total to 0
repeat with i from 1 to 100 by 2
set Total to Total + i
end repeat

Totalには1から100までの奇数だけを足した数が代入されます。
結果:2500

Repeat with 〜 in 〜 リストから要素を一つずつ拾い上げながらリスト数だけ繰り返す
repeat with リストの要素 in リスト
 命令文
end [repeat]

例)
set listName to {"いぬ", "ねこ", "とり", "うま"}
set i to 1
set animalName to {"", "", "", ""}
repeat with Animal in listName
set item i of animalName to "子" & Animal
set i to i + 1
end repeat
display dialog animalName

変数animalNameには{"子いぬ", "子ねこ", "子とり", "子うま"}が代入される

exit repeat文から強制的に抜け出す
repeat
 命令文
 exit
 [命令文]
end [repeat]

例)
repeat
display dialog "貴方は美しいですね。" buttons {"はい","いいえ"} default button 1
 set kotae to button returned of the result
 if kotae is "いいえ" then
  display dialog "いえいえ、ご謙遜を!"
 else
  display dialog "気取ってんじゃねーよ!"
  exit
 end if
end repeat

 

ケースに合わせてRepeat文を使い分けましょう。

アプリを起動して、ファイルを選択して、作業を実行して終了するという事を、ドラッグ&ドロップで簡単に実行する事が出来ます。
これを基本に簡単で便利なスクリプトを別ぺーじで説明致します。

ページのTopに戻る