「AppleScript,Perl,Shell」OS Xでスクリプトスレ
■ このスレッドは過去ログ倉庫に格納されています
0001えろす
03/06/09 01:57ID:h7HK7J41AppleScript、Perl、シェルスクリプトなどの、発表、質問なんかあったらどうぞ。
関連スレはこちら
MacOS XをUNIXとして使ってる人の為のスレ その4
http://pc.2ch.net/test/read.cgi/mac/1043836633/l50
おもろい、めずらしいアップルスクリプト発表会 4
http://pc.2ch.net/test/read.cgi/mac/1026844857/l50
前スレ 「ご主人様ご命令を!」OS Xでスクリプトスレ
http://pc.2ch.net/test/read.cgi/mac/1010546884/l50
スクリプトについて概略は >>2-3
参考リンクは >>4-7
0153名称未設定
03/07/27 07:15ID:XODZZP3rわたしが困ったのは
"hoge:日本語のファイル名" as alias
でエラーがでるってところ。
文字コードの問題らしいので変換?すれば回避できるがめんどくさい。
>>152
気が付かなかったが
set a to "表示"
でエラーでますね・・・
1バイト文字だけでスクリプト書くなら2.0b2がお勧めかな。
検索/置換は便利だし、辞書を簡単に見られるもいい。
あ、ツールバーから検索できます。
コンテクストメニューでよく使う?スクリプトの
ひな形をペーストできるもの便利そう。
Apple Script Editor 2.0b2
http://www.versiontracker.com/dyn/moreinfo/macosx/17542
0154152
03/07/27 18:02ID:mQUTMoKSユーザの優先言語が英語になっているとふつうのバックスラッシュが使える。
日本語のユーザではバックスラッシュは option + Y で入力す
¥ を使わなくちゃいけないみたい。
よってタコ > 2.0b2
0155山崎 渉
03/08/02 02:30ID:pAaIAblN0156名称未設定
03/08/04 21:59ID:4D0dnO100157名称未設定
03/08/04 23:00ID:12HAJxHW作れるようになるらしい。Ruby も RubyCocoa で Cocoa アプリ作れるし、Tclsh は Tk
を使えば一番簡単に GUI が作れる。今から Python を覚えれば、GUI アプリを配付する
のが楽になって良いと思うよ。コマンドラインアプリのラッパーなど、色々役に立ちそう。
0158名称未設定
03/08/06 17:38ID:Stx6KzAfプログラムを実行するときは、なにかSriptEditorみたいな
環境を使うのですか?それともターミナル上とかで実行するのですか?
0160名称未設定
03/08/06 19:11ID:9sPoXoBeゴミ箱に捨てるアップルスクリプトを書きたいのですが、どうすれば
エイリアスのリンク切れがわかるのか、わかりません……。
どなたか助言おながいします。(;-人-)
0161えろす
03/08/06 20:26ID:gpIiqLLlFinderでオリジナルを探してエラートラップで逝けました。
tell application "Finder"
set afile to choose file
if alias of (info for afile) is true then
try
original item of afile
on error
delete afile
end try
end if
end tell
0162名称未設定
03/08/06 23:56ID:ExVu8Lobエディタか端末エミュレータ上で開発。実行は端末エミュレータかファインダでダブルクリック。
0163160
03/08/07 07:39ID:C3/pBgO0ありがとうございます。
エラートラップという事は、正式な方法はないのですね。
try文はどうにも力押しというイメージで、常用するには
抵抗があるのですが、とりあえずこれで逝ってみます。
0164名称未設定
03/08/07 08:34ID:c3hNrfBgJavaとかRubyとかC++とか, try〜catch的な機構をもっている言語なら、
error trap書きまくり、はい、それからどうした?
的な書きかたをするのはごく普通のこと
AppleScriptにおいてもまったく正式な方法だし、慣れと気分の問題なので
気にしないでつかうがよろし。
0165名称未設定
03/08/07 09:22ID:0nH0eeOY0166名称未設定
03/08/07 09:55ID:fqCI8cgEって書くとerrStrにエラーの原因が入るようだ。
0167160
03/08/07 18:00ID:C3/pBgO00169名称未設定
03/08/08 05:53ID:ZkGAfj1T同意。
エラートラップ使ってるとOSのバージョン変更で使えなくなったりする事はあるので
それは注意しませう。
まぁそれはエラートラップ以外でも同じ事だけどね。
0170名称未設定
03/08/10 13:52ID:lAHPTaCwフォルダのリストのアイテムが、
フォルダかファイルか判断するスクリプトを
書いたのですが、プロパティのfolderを取る
ところでエラーになってしまいます。
webで調べた限りは、皆さん普通に使っている
みたいのですが、私のスクリプト間違っている
ところがあるのでしょうか。
OSは、10.2.6
AppleScriptは、1.9
エラーは、「実行エラー "folder of {...}"を取得できません"」
tell application "Finder"
set myFolder to (choose folder with prompt "連続表示させ....")
set fileList to list folder myFolder without invisibles
set myFolderPath to myFolder as string
repeat with aItem in fileList
set filePath to myFolderPath & aItem
set fileinfo to info for file filePath
if folder of fileinfo is true then
display dialog aItem & " is Folder"
else
display dialog aItem & " is File"
end if
end repeat
end tell
0171名称未設定
03/08/10 16:03ID:eUTqHIW+いいたいことはいろいろあるんですが
まず、そのスクリプトはFinderにtellする必要はありません
tell〜とend tellの2行を削除したらエラーは出ません
でもエラーの原因はMac側のバグです
list folder myFolder without invisiblesで不可視ファイルを無視するように
してるにも関わらず不可視ファイル(".FBCIndex")をカウントしてしまい
そのファイルはFinderからは見えないので
「〜取得できません」とエラーを吐き出したのだと思います
Finder側とOSAX側で不可視ファイルの定義が違うんですかね
ですから
余計なお世話でしょうけど
別の方法でフォルダとファイルを区別した方がいいと思います
0172名称未設定
03/08/10 16:41ID:/Q6yV09ePerlっていうか、それ以前の問題なのですが、
ホームのSitesフォルダ内でCGIが動かせるようにしようとしているのですが、
いっこうにできません。
(CGI-Executablesフォルダでは実行できます。)
試みたこと
/etc/httpd/httpd.confを変更した。
ScriptAlias /cgi-bin/ "/Library/WebServer/CGI-Executables/"
↓
ScriptAlias /cgi-bin/ "/Users/name/Sites/cgi-bin/"
あと
<Directory "/Library/WebServer/CGI-Executables">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
というところも同じように変更。
ここのOptionsも変更してみるも、よく分からなかったので現在はnoneにもどしてあるます。
どうしたらいいか教えてください。お願いします。
0173名称未設定
03/08/10 17:59ID:GCITWM8cFinderにtellしてることそのものが原因じゃないのか?
「folder of fileinfo」の「folder」がレコードのラベルじゃなくて
Finder定義アイテムのfolderとして扱われるからでわ。
0174170
03/08/10 18:48ID:lAHPTaCwどうもありがとうございます。
Finderへのtellを省いたらちゃんと動きました。
ファイルを扱うから、Finderにtellしなきゃならない
と思っていたんで、Finderへのtellを省くなんて
思いつきもしませんでした。
0175172
03/08/10 20:36ID:/Q6yV09eただのスペルミスでした。
0177名称未設定
03/08/12 19:46ID:4SuC7KYHmake new itemでmain menuに項目を追加し、
それを選択した場合に処理をさせたいのです。
追加した項目に処理を付加するにはどうしたら良いのでしょう?
純粋にAppleScriptの質問じゃないのですが、良ければどなたかおながいします。
0178名称未設定
03/08/15 01:19ID:VUewFuLGこれだと文字化けしまくりですた。
tr/A-Za-z0-9/A-Za-z0-9/
0179名称未設定
03/08/15 02:24ID:P4c3NTIeあれは1バイト圏的には「一文字」じゃない。
0180あぼーん
NGNG0181名称未設定
03/08/15 23:25ID:S9tPb6bx0182178
03/08/16 00:01ID:G7elT72fそれはわかってるんですが、ユニバーサルな方法がないものかと...
で、以下の方法で解決しますた。
jcode::tr(\$hoge,'A-Za-z0-9','A-Za-z0-9');
0184名称未設定
03/08/19 08:16ID:bso32jAdいることを最近知りました。これを利用して、Wordの
英文文書の単語をダブルクリックするとJammingなど
の辞書引きアプリを起動して、選択された単語を
自動的に調べるようなApple Scriptを作りたいと
考えています。
コピーした英単語を辞書引きアプリに渡すのは次のようにできることは分かります。
tell application "JISHO SOFT"
activate
set tango to the clipboard
LOOK UP tango IN DICTIONARY
end tell
その前の段階のWordの単語をダブルクリックしたときに、
その単語をコピーするApple Script(バックグランドで動か
す)をどう書くのかが分かりません。
アドバイスをいただけると、幸いです。
0185名称未設定
03/08/20 00:01ID:JMqpJs8d0186名称未設定
03/08/23 12:25ID:oMXqvMmQ実行専用とドロップレットで、ドラッグしたテキストファイルを
変換してファイルに書き出すアプリを作ったのですが、
複数テキストをたて続けに処理する場合に、一旦アプリを再起動させないと
2回目以降のファイルを読み込めません。
解決策がありましたら教えて下さい。
0187名称未設定
03/08/23 15:34ID:UI5x5McC0188186
03/08/23 22:42ID:oMXqvMmQとりあえずこれだけで試してます。
0189名称未設定
03/08/24 01:19ID:BosrheSaMacPerl::Quit(2);
しちゃったら?
終了させる手間を省くだけだが、最近の機種なら再起動なんて一瞬だろうし。
まともな解決にはなってないかもしれんが。
0190名称未設定
03/08/24 01:31ID:BVrjhOSF<>つかってるんなら、EOFでドロップレットは終了するんじゃないの?
複数ファイルをまとめてドラッグアンドドロップするっていうこと?
もしそうなら、@ARGV見て1ファイルづつopenとcloseすべきでは?
そもそも、どうなったらそのドロップレットは終了するの??
0191名称未設定
03/08/24 02:10ID:GSvgMdyaソースを見てそこから自分で広げていきたいと思います。
0193名称未設定
03/08/24 09:04ID:GSvgMdya>>1のリンクに分かりやすいサイトがないんですけど、、、、、
0194名称未設定
03/08/24 10:13ID:LRduc7Tthttp://www.amazon.co.jp/exec/obidos/ASIN/4756134785/qid=1061687593/sr=1-3/ref=sr_1_2_3/249-1540342-6545901
0196名称未設定
03/08/24 14:08ID:KxN6Pnf5http://www.apple.co.jp/applescript/begin/index.html
http://www.drycarbon.com/applescript/
0197名称未設定
03/08/24 18:02ID:GSvgMdyaたたかれると思ってびくびくしてたのに。
頑張ってみます!
0198名称未設定
03/08/25 10:11ID:2xAm6MRrhttp://www.amazon.co.jp/exec/obidos/ASIN/4797310111/ref=pd_sim_dp_1/249-0907760-2525134
これ必読。
俺もここで「リファレンス換え」って言われたアフォなんだが、基本的な文法が理解できて買って良かったと思ってる。
0199名称未設定
03/08/25 10:48ID:IeAMaFzOAppleScriptが出た当初のものだから、まあ、内容的には古いけど、
基本は変わってないから、未だに重宝してまつ。
アポーからもリファレンスが出てたよね。
どっちももう廃刊だよね?
0200名称未設定
03/08/25 20:40ID:9inGP+doおととい、新宿の紀伊国屋にまだあったよ。アポーのreference。
そんな貴重なもんだったのか。買っときゃよかった...。
0201名称未設定
03/08/25 22:43ID:3b4bojjlアポーのやつも持ってるけど
わざわざ買うほどの価値は無し。
>>198のこばやしゆたか/AppleScriptリファレンス制作委員会著
『AppleScriptリファレンス』は極めて良書。
OS X版はまだぁ?
0202186
03/08/26 00:31ID:T5FX2PXb何故かドロップレットが全く起動できないので実行専用をドロップレット
チックに使ってました。1つ目のファイルをドロップして処理終了した後、
次ぎのファイルをドロップすると、テキストファイルをMacPerlで開こうとして
しまうよう。なので、189さんの方法で随時終了するようにしました。
要するにドロップレットと動作的には同じ風にしました。
取り合えずうまくいってますが、ドロップレットが何故使えないのかお心当たりありましたら
後学のためによろしくです。ドロップしたらドロップレット自体が見つかりませんという
内容のエラーが出ます。
0203名称未設定
03/08/26 00:36ID:MnopM9KO鳶嶋工房の辞書でもけっこう済みません?
http://homepage1.nifty.com/ton_b/AppleScript/bkfr.htm
0204名称未設定
03/08/26 00:43ID:uYRssDLs漏れなんかはそこらのサイトを逝ったり来たりして
断片的に覚えたから、無駄の多い書き方になってるかも。
0206名称未設定
03/08/26 00:50ID:39N8/h7S結構あっておもしろいよね。
0207名称未設定
03/08/26 00:52ID:MnopM9KO他の言語だとああいう書き方って絶対しないしね…
なんとか of なんとか of …
0208名称未設定
03/08/26 09:11ID:Wm2Aeu360209名称未設定
03/08/26 09:27ID:Wm2Aeu36質問です。
ネットワーク上にあるOS9のマシンを他のマシンからRestartさせる事は可能でしょうか?
OSXなら外からのAppleEventを受け付ける事が出来るとの事なので、
AppleScriptでFinderのRestartを送ればいいと思うんですが。
0210名称未設定
03/08/26 09:33ID:MnopM9KOhttp://homepage1.nifty.com/ton_b/AppleScript/Basic/Object/machine.html
さきほど辞書サイトを出したばかりだろ
0212名称未設定
03/08/30 05:15ID:tqLC6R1Pmp3ファイルに含まれる、id3タグを読み出したいのですが、何かご存じでしょうか?
曲名、アルバム名、アーティスト名さえ取り出せればいいのですが…
0213名称未設定
03/08/30 05:19ID:mAdAhAVG0214名称未設定
03/08/30 09:21ID:QQrbzd800216名称未設定
03/09/06 09:10ID:Rb1620AF0217名称未設定
03/09/07 18:19ID:0fuZjl2r0218名称未設定
03/09/13 07:37ID:YPVTOpK8add - new item alert.scptってのを少しいじって使ってます。
要は、web共有時にPub>Drop Boxへファイルが入っても気づかない事があって、
ファイル追加時にアラートが欲しかったわけです。
フォルダを開く前に指定のサウンドを鳴らせないかと思い、ソレは上手く行ったんですよ。
たとえば、自分でファイルをドロップしても反応するし、知人とのテストでも問題無し。
ただ、LAN内のファイル共有だと反応しないんですよ。最近気づいたんですが。
そんなことってあるもんでしょうか。
0219名称未設定
03/09/15 12:41ID:NqjotXeyと鳶さんも言ってました。フィードバックすれ。
それで、「ある特定の日付け以前のファイル」のリストをつくってforループに渡すか
forループの中で「ある特定の日付け以前のファイル」かどうか判定して
古いファイルを消したいのですがこの判定の仕方がよく分かりません
set TMP `ls -lT $f` で得られた日付けと「特定の日付け」との比較で判定しようと
したのですが日時の引き算の方法がよく分かりませんでした。
どうしたらいいんでしょうか?
0221220
03/09/23 10:28ID:aYLENQ+0ただ、setの使い方がよく分からん、なんで
set `ls -lT`
の書き方は良くて
set `ls -lT filename.dat`
だとエラーがおきて sh: set: unknown option: w
って怒られるのは何故だろう・・・
0223名称未設定
03/09/24 15:13ID:OqPMnz5c出来るようなもの無いっすか?
なぜこんなのが必要かというと、ファイルメーカーServerなんすけど、
./fmserverd STARTが効いてくれなくて自動起動できないんです。
英語版やLinux版だと問題ないみたいなんですけど。
だからしょうがなく「サーバーの起動」ボタンをポチッとしなきゃいけなくて。
0224名称未設定
03/09/24 18:35ID:wUqjoN7uhttp://www.apple.com/applescript/GUI/
でなんとかなるかも、ならないかも
0226名称未設定
03/09/24 19:42ID:/NNCbTAm素晴らしい!なんとかなりましたです。
ちなみにこんなスクリプトでOKでした。
tell application "ファイルメーカーServer設定"
activate
end tell
tell application "System Events"
tell process "ファイルメーカーServer設定"
click (the first button of the front window whose title is "サーバーの起動")
end tell
end tell
0227名称未設定
03/09/24 19:47ID:ggStX8LI素晴らしい!なんとかなりました。
ちなみにこんなスクリプトです。
tell application "ファイルメーカーServer設定"
activate
end tell
tell application "System Events"
click button "サーバーの起動" of window "ファイルメーカー Server" of application process "FileMaker Server Config"
end tell
0228名称未設定
03/09/24 19:49ID:ggStX8LI>226でもいいけど、>227の方がシンプルかなと。
0229名称未設定
03/09/24 20:23ID:v7BveC7O扱いにはまってしまいました。
・findで、スペースを含む名称の検索するにはどうすれば・・・?
find . ' 'やfind . '\ 'ではだめなようです。
・パスの記述で、'\ 'とエスケープする以外に、スペースを表現する
他の方法はないでしょうか?例えば文字コード参照のような。
0230名称未設定
03/09/24 20:41ID:VmYkIaOYfind . -name "* *"
とか
0231229
03/09/24 21:50ID:8vgkuCWiおお、完璧です!ありがとうございます。
2つ目のエスケープについては、foreachで複数のパスを
連続処理したかったのですが、スペースを含んでいると
そこでパスが分断されてしまうので、どうしたものかと。
0232名称未設定
03/09/25 13:56ID:4MWGb/zXと
xargs -0
を調べろ
0233名称未設定
03/09/27 00:41ID:MGLMkZAc0234名称未設定
03/09/27 00:42ID:MGLMkZAc0235名称未設定
03/09/27 01:02ID:Yq2m7N9X0236名称未設定
03/09/27 02:31ID:H6Z9NOFf0237名称未設定
03/09/27 02:51ID:Yq2m7N9X0238名称未設定
03/09/28 10:36ID:k/kpWxP60239名称未設定
03/09/28 12:35ID:GFUr0Jd00240名称未設定
03/09/28 12:41ID:QrYsRba70241名称未設定
03/09/28 13:16ID:GFUr0Jd00242名称未設定
03/09/28 15:20ID:4ItLjauu0243名称未設定
03/09/28 21:25ID:UaSx/S8V0244名称未設定
03/09/29 02:39ID:mCU4CB8c0245名称未設定
03/09/30 21:06ID:eKW10kvs↓
JPEGViewが起動
↓
画像をPictureViewer書類からJPEGView書類に変換して上書き保存
↓
終了
…というAppleScriptを作ろうとしたのですが失敗。
どなたか作っては頂けないでしょうか?
0246名称未設定
03/09/30 21:33ID:VfppmTtX0248245
03/09/30 23:40ID:eKW10kvsいえ、InternetExplorerからダウンロードした画像(PictureViewer書類)を
JPEGViewで読み込んで、JPEGView書類として保存したいのです。
アイコン表示を「中」にすると、PictureViewer書類は枠の部分が灰色なので
黒にしたいと思いまして。
(JPEGViewで読み込み保存した画像は「中」でも枠の部分が黒)
0249245
03/09/30 23:49ID:eKW10kvstell application "Finder"
activate
select file "JPEGView3.3.1-jp"of folder "アップルメニュー" of folder "システムフォルダ" of startup disk
open selection
end tell
tell application "JPEGView3.3.1-jp"
activate
open {alias "Macintosh HD:Desktop Folder:ダウンロード:***.jpg"}
save document 1 in alias "Macintosh HD:Desktop Folder:ダウンロード:***.jpg" as picture with preview and icons without reduced colors given ヌclass Jccwネ:0
close window 2
end tell
記録機能を利用して、こんな感じで書いてみたのですが…
初心者なのでどこが悪いのか分かりません。
0250名称未設定
03/09/30 23:56ID:DbNBm54Ron open theItemList
tell application "Finder"
repeat with theItem in theItemList
set creator type of theItem to "JVWR"
open theItem
end repeat
end tell
end open
これでどうよ。
動くかどうか試してないけど。
0251名称未設定
03/10/01 00:05ID:4vhcwuD10252245
03/10/01 10:03ID:hh+eZiP9わざわざ作ってくれてありがとうございます…でもこれではありません。
書き方が悪かったですね。
ScriptにPictureViewer書類をドラッグ&ドロップした時に
以下の作業を自動化させたかったんです。
JPEGViewを起動させ、PictureViewer画像を開く
↓
「別名で保存」を選択
↓
「保存」をする
↓
「○○.jpgをいれかえますか?」と出るので『はい』を選択
↓
処理完了
■ このスレッドは過去ログ倉庫に格納されています