前回の続き。
set folder_path_trmnl to POSIX path of folder_pathで取得したフォルダのパスをperlスクリプトに渡すところから。
ここが一番はまった...
まず、Applescirptからperlスクリプトを実行する方法は
(自分が知っている限り)2つある。
do shell scirpt "コマンド"これは、ほんとにApplescirpt上でperlのコマンドが動く。
Applescirptでは、perlの中でprint "なんたら"としたやつを取得できる。
もう一つはTerminalを起動させてしまい
そこで実行する方法。
tell application "Terminal"
ごにょごにょ
end tell("アプリ"の部分をSafariにして指定したurlを開くとかもできる。)
ごにょごにょの部分に
do script "Terminalに実行してほしいコマンド"をかけばいい。
この方法、GUIを作るんだ!
っていう目的にそぐわないので却下。
┌○┐
│お|ハ,,ハ
│断|゚ω゚ ) お断りします
│り _| //
└○┘ (⌒)
し⌒
ということでApplescript上でperlを実行することにした。この場合、
do shell script "cd "/some/where/niaru/your_program.pl 引数"でできるはず。
この引数を渡す方法がかなり厄介。
上記の例だと、単に
ponyo.pl folder_path_trmnlとしただけでは無理。
試しにperl中で
print "ARGV[0]\n"
とすると
folder_path_trmnl
と返ってくる。
helpをみても分からんので、他人のサンプルプログラムを拝見。
"ponyo.pl " & folder_path_trmnl & ""うげぇ、なんだこれ...
一気にApplescriptに対する印象が悪くなった。
まあ、かくして引数は渡せる様になった。
いざ実行。
フォルダを選択させるダイアログが出現。
Terminal式のパスがPerlスクリプトに渡されて...
動いたー、ってあれーーー?
このプログラム、対話式で、入力した数字をもとに
コピーするファイルを決定するのに、全部デスクトップにコピーされてやがる....
うおおぉおぉおおおぉぉぉぉーーーい!!!このあといくらあがいても
対話型として動かすことはできませんでした。。。
ちゃんちゃん。
ということで現在、Terminalを起動させる方法で「一応」
完成しました。
Folderを選択するとこだけGUI...
applescript上で完結させるには
元のperlスクリプトをかなりいじらなければならなそうなんで
暇なときにでもやる...かな?
やらないなんてこともないかと思うこともない。
PR