連載[最終回(2)] 素朴なQ&A
|
|
AppleScriptでファイルを検索するスクリプトは作れますか。 |
|
先生
|
これも実に素直な質問でよろしい。答は簡単、「作れます」。 |
|
」
|
えっ、先生それでおしまいですか。 |
|
先生
|
ほかに何を答えろと言うんだい。 |
|
」
|
せめて書き方をちょこっとでも教えてあげるとか…。 |
|
先生
|
だってこれに近いようなのを連載の初めの頃にやったような気がするんだけどね。じゃぁ、今回はとっておきの技を見せちゃおう。 |
![]() |
|
|
」
|
たった2行ですか。 |
|
先生
|
これで、「KT7.5」というディスクにあるすべてのファイルの中から「Apple」で始まる ファイルを検索して得られる。英語モードなんで結果が文字化けしてるけど、ちゃんとファイルが取ってこれるだろ。 |
![]() |
|
|
」
|
検索したファイルに対して何かやりたい時はどうすればいいのでしょう。 |
|
先生
|
そういう時は、repeat構文で1つひとつファイルを操作していくことになるね。 |
![]() |
|
|
」
|
そう言えば以前、
entire contents って属性を教えていただきました。サブフォルダも含めてディスクやフォルダ全体を操作対象にできるんでしたよね。 |
|
先生
|
そうだ、よく覚えていたね。この例はディスク全体を対象にしているけど、特定のフォルダに置き換えても動くよ。これを参考にして、自分なりに頑張ってスクリプトを書いてみたまえ。 |
|
|
実行形式のスクリプトで初期画面を出さない方法を教えて下さい。うっとうしいので。 |
|
」
|
実行形式のスクリプトって、スクリプト編集プログラムを使わないで実行できるアプリケーションみたいなスクリプトですよね。実行すると、こんなダイアログ・ボックスが出てきます。 |
![]() |
|
|
先生
|
実行形式にするには、スクリプトを保存する時に「アプリケーション形式」を指定すればいい。 この時「初期画面を表示しない」というチェック・ボックスをオンにすれば、うっとうしい初期画面は出てこないよ。 |
![]() |
|
|
AppleScriptでHyperCardは制御できますか。 |
|
」
|
そういえば、これまでHyperCradについては全然取り上げませんでしたよね。 HyperCardはスクリプタブルなんですか。 |
|
先生
|
もちろん。だけどHyperCardはちょっと特殊で、スクリプト編集プログラムを使わずに、HyperCardだけでAppleScriptが書けるんだ。 |
|
」
|
えぇっ! |
|
先生
|
例えばこんなスタックがあったとしよう。 |
![]() |
|
|
」
|
ボタンとフィールドが1個ずつありますね。 |
|
先生
|
HyperCardはHyperTalkというスクリプトが使えるけど、その代わりにAppleScriptを書くこともできるんだ。 この「サンプルボタン」には、こんなAppleScriptが書いてある。 |
![]() |
|
|
先生
|
「サンプルボタン」をクリックすると、ほら、ちゃんとAppleScriptが実行されて、フィールドの文字がダイアログボックスに表示されただろう。 |
![]() |
|
|
」
|
スクリプト編集プログラムからHyperCardを制御することはできないんですか。 |
|
先生
|
できる。上と同じことをやらせるなら、こんなスクリプトになるね。 |
![]() |
|
|
」
|
これはすごい! HyperCardは外からでも内側からでもAppleScriptで自動操作できるわけですね。 |
|
|
AppleScriptでLocalTalkとEtherTalkの切り替えができますか。 LocalTalkの設定を解除してから再起動してEtherTalk環境を作りたいんですが。 |
|
先生
|
えっ、切り替えた後で再起動する必要があったんだっけ? 「ネットワーク」コントロールパネルは単に変更するだけで再起動は必要ないはずだよなぁ。 |
|
」
|
えぇ、確かそのはずです。 |
|
先生
|
結論を言うと、AppleScriptだけでは無理だね。やっぱりこれも、PreFab Playerに頼るしかないな。さっきの解像度変更のスクリプトを参考にして頑張っていただくとしよう。 |
|
|
AppleScriptでQuarkXPressの内部的な機能を制御することはできますか。 例えば文字の回転とかですが。 |
|
先生
|
うんうん、文字の回転ね。こんな具合かな。 |
![]() |
|
|
」
|
QuarkXPressは第7回でやりましたよね。 |
|
先生
|
だけど細かいコマンドまでは触れなかったね。ここではテキスト・ボックスの
rotation という属性をsetしているだけだ。
|
| QuarkXPressのAppleScriptコマンドはすごくたくさんあるんだ。 紹介しきれないから、スクリプト編集プログラムでQuarkXPressの用語説明を見て自分で調べてもらうしかないね。 |
|
![]() |
|
|
AppleScriptで、漢字Talk 7.5のクライアントから漢字Talk 6.0.7のAppleShareサーバーのファイルをコピーしたり、名前を変えたりできますか。 |
|
先生
|
何だって? |
|
」
|
いや、先生。質問は書かれている通りなんですが。 |
|
先生
|
そんなことは、これまで考えてみたこともなかったよ。 |
|
」
|
で、どうなんでしょうか? |
|
先生
|
マウントしてあるサーバーのディスクは、ローカルのハード・ディスクと同じ扱いだよ。Finderにtellしてちょちょいと操作すればいいじゃないか。例えばサーバーからファイル・コピーするスクリプトだと、こんな感じになるね。 |
![]() |
|
![]() |
|
|
」
|
ディスクとしてAppleShareサーバーの「MAC Server」を指定してるだけですね。あんまり難しく考える必要はないんですね。 |
AppleScript救急隊事務局(ASQs) info-asqs@fsight.co.jp