「ご主人様ご命令を!」OS Xでスクリプトスレ

このエントリーをはてなブックマークに追加
76へたれ
>>74
了解、です。cURLを利用した連番ファイルDL用スクリプト、です

#!/bin/sh
#
# Usage: command [-s] [-r referer] [-n first_number] [URL...]
url=
site=
fnum= # first file number
lnum= # last file number
ext= # file extension
refer= # http referer
SMODE=false # Silent mode
STDOUT=`tty` # standard out
COMMAND=`basename $0`
USAGE="Usage: $COMMAND [-s] [-r referer] [-n first number] [URL...]"
# analyze command option
#
set -- `getopt sr:n: $*`
if [ $? != 0 ]; then
echo "$USAGE" 1>&2
exit 1
fi
for OPT in $*
do
case $OPT in
-s) SMODE=true
shift ;;
-r) refer=$2
shift 2 ;;
-n) fnum=$2
shift 2 ;;
break ;;
esac
done
77へたれ 76 の続き:02/02/03 21:33 ID:7YUC+uZK
if [ $SMODE = true ]; then
STDOUT="curllog.$$"
fi
for url in "${@:-`pbpaste`}"
do
case $url in
http*) : ;;
*) echo "$url is not URL" 1>&2
echo "$USAGE" 1>&2
continue ;;
esac
# set file extension and url
#
site=`echo "$url" | sed 's/\(^h.*[^0-9]\)[0-9][0-9]*\....$/\1/'`
ext=`echo "$url" | sed 's/^h.*\.\(...$\)/\1/'`
#
#set file number
lnum=`echo "$url" | sed 's/^h.*[^0-9]\([0-9][0-9]*\)\....$/\1/'`
if [ "$fnum" = "" ]; then
case $lnum in
[0-9]) fnum=1 ;;
[0-9][0-9]) fnum=01 ;;
[0-9][0-9][0-9]) fnum=001 ;;
[0-9][0-9][0-9][0-9]) fnum=0001 ;;
*) echo "Error: Unexpected file number " 1>&2
exit 1 ;;
esac
fi
if [ -z $refer ]; then
curl -L -O $site\[$fnum-$lnum\].$ext
else
curl -e $refer -O $site\[$fnum-$lnum\].$ext
fi
# clear first file number
fnum=
done > $STDOUT 2>&1
exit
78へたれ:02/02/03 21:48 ID:7YUC+uZK
>>76-77のscriptの説明
書式:command [-s] [-r referer] [-n 最初のファイル番号] [URL ...]

-s:サイレントモード。Terminal端末画面に出力は一切はでません
  DLフォルダにcurllog.$$($$はPID)ファイルが出来ます。
  基本的に % comannd -b & って感じでバックグランド処理用です
-r:の後にhttp referer付けます。
-n:DLするファイルの最初のファイル番号を指定します。
  指定されていないとファイル番号1からDLします
  なおファイル番号を指定出来るDL先は1つです:‥。
  複数のURLを指定した場合は2つめ以降は通常通り001~からDLされます
URL:ファイルDL先URL。連番ファイルの最後のURLのみを指定すれば
   1番からDLします。URLは複数指定可能でございます。
   URLをクリップボードのコピーしていれば省略可能です

ex
% command -n 03 http://hogehoge.com/file15.jpg
ファイル03.jpg〜15.jpgがDLされますです。
「-n 03」が無ければ01.jpg〜15.jpgがDLされます。

applescriptでの呼び出しスクリプトきぼ〜ん
79へたれ:02/02/04 13:55 ID:oJqvXL0d
>>76で間違いがありんす。case $OPT in 以下は↓の通りです。
case $OPT in
-s) SMODE=true
shift ;;
-r) refer=$2
shift 2 ;;
-n) fnum=$2
shift 2 ;;
--) shift
break ;;
esac

それと今試しにTextEdit.app にコピーして保存してみたんですが、
改行コードや \が無茶苦茶になりますな。そのあたりでエラーでたなら
言ってやってください。
801:02/02/04 19:17 ID:hljcaByY
長いけど一応作ってみました。

>>78
property Download_Folder : ""
property Command_Pass : ""
property Reffer_Flag : "No"
property Background_Flag : "No"
property Firstnumber_Flag : "No"

if Download_Folder is "" then
set Download_Folder to choose folder with prompt "ダウンロードファイルを保存するフォルダを指定してくれ"
set Download_Folder to POSIX path of Download_Folder
end if
if Command_Pass is "" then
set Command_Pass to choose file with prompt "連番ダウンロードスクリプトを選択してくれ"
set Command_Pass to POSIX path of Command_Pass
end if

set MainURL to the clipboard
set choiceList to {"簡単連番ダウンロード", "ユーザ定義ダウンロード", "ユーザ定義設定"}
set DownMethod to choose from list choiceList
set DownMethod to DownMethod as text
if DownMethod is "簡単連番ダウンロード" then
set Command_Str to Command_Pass & " " & MainURL

else if DownMethod is "ユーザ定義ダウンロード" then
set Option_Str to ""
if Background_Flag is "Yes" then set Option_Str to " -s "
if Reffer_Flag is "Yes" then
display dialog "HTTP Reffererを入力してください" default answer (the clipboard)
set Option_Str to Option_Str & "-r " & text returned of result & " "
end if
if Firstnumber_Flag is "Yes" then
display dialog "連番の最初の数字を入力してください" default answer "01"
set Option_Str to Option_Str & "-n " & text returned of result & " "
end if
set Command_Str to Command_Pass & " " & Option_Str & MainURL

else if DownMethod is "ユーザ定義設定" then
display dialog "HTTP Refeferを使用しますか?" buttons {"Yes", "No", "キャンセル"}
set Reffer_Flag to button returned of result
display dialog "バックグラウンドで使用しますか?" buttons {"Yes", "No", "キャンセル"}
set Background_Flag to button returned of result
display dialog "連番の最初の数字を指定しますか?" buttons {"Yes", "No", "キャンセル"}
set Firstnumber_Flag to button returned of result
return
else
return
end if
tell application "Terminal" to do script with command "cd " & Download_Folder & ";" & Command_Str
811:02/02/04 19:25 ID:hljcaByY
>>80
んで、説明。
コピペして保存。最初に実行すると、ダウンロードフォルダと
へたれさんのスクリプトの場所を聞くので指定します。パス通った
場所じゃなくても大丈夫です。ただ、スペース入りのパスは駄目です。
簡単連番ダウンロードはただ、クリップボードに入ったURLを引き数と
して実行するだけです。
ユーザ定義、ユーザ定義設定は最初にrefferとか、サイレントモードとか
をユーザ定義設定で行っておいて、その設定がユーザ設定になります。
まぁ、使ってみればわかるはずです。
82へたれ:02/02/05 17:52 ID:YnNqyrUD
>>80-81
すげぇ!!
なるほどって感じだ。非常に勉強になりました。
とくにユーザー定義のやり方。目から鱗です。

最初はNoのflag 立てといて後でそれを選択出来るようにする。
まったく思い浮かばなかった。いやすんげぇ。
83金髪先生:02/02/05 19:49 ID:R9hbN0bp
>>76-81
先生悲しいぞ。先生もがんばって呼び出しスクリプト書いてたんだけど、
先を越されて悲しいぞ。でもこれ便利だぞ。へたれさん、1さんお疲れさまだぞ。
84 :02/02/05 21:26 ID:I0C2p+K6
Classic版AppleScriptとわけてあるのはなぜ?
OS-Xはなんか違うの?
851:02/02/05 22:05 ID:fbzB/Dwi
>>82
なんか喜んでもらってうれしいです。今もう少し改善中なんで、待っててちょ。

>>84
AppleScript自体は特にかわりはないんだけどさ、AppleScriptってアプリによって
関数が違うでしょ。9でもXでも全く同じAppleScriptが動くアプリって、数えるほど
しかないと思う(Finderだって少々違う)。そんでさ、9では出来たのにXだと出来ない
って話があると、XならかわりにShellコマンドとかShell Script、Perlスクリプトで組み
合わせて使えるし。それだったら、別スレにしたほうがよいと思って立ててみた。
86えろす=1:02/02/05 22:52 ID:fbzB/Dwi
なんとなくコテハンにしてみました。小一時間くらい考えました。
このスレ途中で入りづらくなったかもしれませんので、簡単にまとめてみます。

スクリプトってのはプログラムの一歩手前みたいなもので、単体では
動作しないアプリケーションと考えてもらってもいいです。ちょっとした
繰り返しの作業を簡単にするために使ったりします。例えば、IEで開いている
ページのURLをコピーして、Terminalを立ち上げて、wgetでJPEGをダウンロード
するといった一連の作業をスクリプトに記述しとけば、そのスクリプトを実行する
ことによって、操作を簡略化することが出来ます。

基本的にOSXではAppleScript(アップル純正のスクリプト環境)、Shell Script、
Perl、その他UNIX系のスクリプト環境があります。>>2にやや詳しく書いてあります。

ここにカキコされたスクリプトを動作させるには、
AppleScriptなら、Applicationフォルダ→AppleScriptフォルダ→Script Editer
を開き、コピペして保存します。保存の形式には、テキスト形式、コンパイル
済みテキスト、アプリケーション形式があります。
テキスト形式→そのままの意味でテキストの形式で保存。実行は出来ない
コンパイル済み→後述するScriptmenuや他のアプリから呼び出す場合に使用
アプリ形式→アプリケーションとして保存。ダブルクリック、ファイルのドロップ
などで実行できる。適当な形式で保存して実行してみてください。

Shell Script(#!/bin/cshで始まってるもの)なら、テキストとして保存するだけ
ですが、改行コードをUNIX用のものにしなければなりません。改行コードをUNIX用
で保存する方法は山ほどありますが、下のエディター「mi」を使うと簡単に保存できます。
ツールバーで改行コードを指定できるので「LF(UNIX)」を選択して保存します。
ttp://www.asahi-net.or.jp/~gf6d-kmym/
保存したテキストを実行するには、まず実行できる形式にしてやる必要があります。
(そのままではテキストなので)Terminalから
chmod 755 保存したテキストのフルパス(ドロップすると楽です。)
とします。次に実行してみます。Terminalから
保存したテキストのフルパス
を書いてリターンキーを押すと実行します。スクリプトによっては引き数が必要です。
また、いちいちファイルのフルパスを書くのが面倒な場合は、パスの通った場所に、
スクリプトを置くことによってファイル名だけを打てば実行できるようになります。
パスの通った場所はTerminalから
printenv PATH
で表示されます。表示された場所にコピーしてみてください。例えば
cp ファイル名 ~/bin
となります。これでファイル名だけで実行できます。

だいたいこんな感じかな〜。わかんなかったら質問してください。
87えろす=1:02/02/06 20:22 ID:rxNurlP6
昨日は疲れて途中で投げちゃったから、続いてスクリプティングに便利なツールについて

・mi スクリプト書きに便利なエディタ
AppleScript、Perl、C言語、その他色々の言語に便利な機能が付いたエディタ。
ttp://www.asahi-net.or.jp/~gf6d-kmym/

・Script menu
AppleScript、シェルスクリプト、Perlスクリプトをメニューバーから実行できる。
http://www.apple.com/applescript/macosx/script_menu/

・System OSAX
シェルコマンドをAppleScirptから実行できるスクリプティング機能拡張。
めちゃくちゃ便利。SAMPLEも勉強になる。
ttp://www.bekkoame.ne.jp/~iimori/sw/systemOSAX.html

・Coela
Finderの代わりに使える便利なファイルブラウザ。コンテクストメニューでファイルパス
が簡単にとれる。AppleScript対応。あんまし関係ないけどコレ最高。
ttp://www.bekkoame.ne.jp/~iimori/sw/Coela.html

・wget
UNIX用の多機能ダウンローダ。OSXでも動く。このスレはコレを使ったスクリプトが多い。
ttp://dec.sakura.ne.jp/~irodori/os_x/install_wget.html
88名称未設定:02/02/07 09:02 ID:Fs6KMXOH
とりあえず上げとこうよ!
89名称未設定:02/02/07 11:31 ID:w0g5wI1R
スレ応援スクリプトとして
IE で選択した文字列を
改行コード LF に変換してテキスト書類に保存するスクリプトつくりました
ScriptMenu に入れとけばシェル系のスレでサンプル利用するときは便利かなと‥
俺自身は UNIX さっぱりなんで検証してませんが、使えますか?

tell application "Internet Explorer"
set this_text to selected text
end tell
set unix_return to (ASCII character 10)
set mac_return to (return)
set old_delimiter to AppleScript's text item delimiters
set AppleScript's text item delimiters to mac_return
set text_items to every text item of this_text
set AppleScript's text item delimiters to unix_return
set this_text to text_items as text
set AppleScript's text item delimiters to old_delimiter
set save_text to choose file name
try
set h_file to open for access save_text with write permission
write this_text to h_file
end try
close access h_file
90名称未設定:02/02/07 12:00 ID:47BESIF3
wgetは最新の1.8.1だとダウンロードしたソースそのままで
./configure通ったよ。
で、make→make installも問題無し。wget1.6よりこっちのがいいかも。
91えろす=1:02/02/07 22:22 ID:x2Ax7qQe
>>89
おぉ考えつかなかった。それイイですね。問題なく使えました。んで、
テキストとして保存した後、パーミッションを変更しなきゃいけないので、
そのスクリプトの後に

set aPath to POSIX path of save_text
tell application "Terminal"
do script with command "perl -pi -e 's/[0-9]+.*ID.*//g' " & aPath & "; chmod 755 " & aPath
end tell

と加えて、パーミッションの変更をやってみました。
ついでに、かなり無理やりですが、「100 : 名称未設定〜」の行を抜くんで、
複数回の投稿にも対応させました。保存する時に名前を英数文字にしてください。

>>90
補足ありがとです。
92えろす=1:02/02/07 22:52 ID:x2Ax7qQe
>>91
間違えた・・「^」を忘れてました。スンマソ

set aPath to POSIX path of save_text
tell application "Terminal"
do script with command "perl -pi -e 's/^[0-9]+.*ID.*//g' " & aPath & "; chmod 755 " & aPath
end tell

ちなみに「^」ってなんて言うの?
93名称未設定:02/02/08 21:28 ID:0qqlq69J
見たことない位のお役立ち良スレの邪魔をするようで嫌なのですが、
wgetのインストールが出来ず困っています。
1さんが17でリンクされてるサイトを参考にやっているのですが、

Mac OS X用に書かれたconfigureのサブスクリプトを置きかえるという
cp /usr/libexec/config.sub .
cp /usr/libexec/config.guess .
を実行してもNo such file or directoryと言われてしまいます。
最後のピリオド省いてみたり色々やっているのですが、、、。
完全Terminal厨房(同時にOS Xも最近入れたばかり)なので
困ってます。
シャーロックでusrで検索しても何も見つからないし、、、。
どなたか教えていただけないでしょうか?
9493:02/02/08 21:55 ID:0qqlq69J
があああ
すいません、あれこれ頑張ってて90さんの書き込み見のがしてました!!
出直してきます!!!!
9590:02/02/08 21:57 ID:UiBoxROn
wgetのバージョンは?
バージョン1.8.1だとサブスクリプト書き換えずそのまま
通ったよ(って上にも書いたけど)。
9690:02/02/08 22:00 ID:UiBoxROn
>>93
ども、書き込み一瞬遅れでした。。。上手くいきました?
9793:02/02/08 22:21 ID:0qqlq69J
>>90
お騒がせすいません。
./configureの結果が以下、、、。

configuring for GNU Wget 1.8.1
checking host system type... powerpc-apple-darwin5.2
checking whether make sets ${MAKE}... no
checking for a BSD compatible install... /usr/bin/install -c
checking for gcc... no
checking for cc... no
configure: error: no acceptable cc found in $PATH

自分は根本的な何かが欠落している気がしてきました、、。
勉強してきてからの方がいいのかな。
98名称未設定:02/02/08 22:38 ID:JZMVnqri
>>97
基本的な事だが、Developer Tool入れた?
99名称未設定:02/02/08 22:39 ID:2eaU8zQi
そもそも development tools 入ってる?
100へたれ:02/02/08 22:40 ID:tMCA4twJ
>>97
コンパイラーが入ってない‥‥。
Developer Tools入れないとコンパイルは出来ないよ。
↓に1.62ならバイナリパッケージがあるから、まずはこれ入れてみれば?
http://gnu-darwin.sourceforge.net/packages/pseudo2/www/

101へたれ:02/02/08 22:42 ID:tMCA4twJ
なにげに100 get!!
10293:02/02/08 22:53 ID:0qqlq69J
へたれさん、ありがとうございます!というかまさに根本、、、。
頑張ってみます!
103名称未設定:02/02/08 23:04 ID:2eaU8zQi
>>100
それよか
http://developer.apple.com/tools/macosxtools.html
から Developer Tools を落すように勧めるべきでは?
104へたれ:02/02/09 00:11 ID:Z3wnxRtQ
>>103
とりあえず wget を入れたいだけだと思ったので、
バイナリパッケージのある場所を載せました。

DevToolは200MB以上あるし、インストールにもかなりの容量が
必要なので「まずこれを」って勧めるものでは無いと個人的には思ってます。
(必須の場合は、上記の限りでは無いですが)
10593:02/02/09 00:48 ID:PIYpIJwO
ここの皆さん優しすぎ、、、。

へたれさん、何も知らない自分にはバイナリファイルがあるからといって
それをどうやってインストールしていいかわからないのです。
なのでDeveloperToolsをいれて、と思ったのですが、

OS Xはパッケージで買ったものではなくibookに付属していたものなので
DeveloperToolsのCDは持ってません。
で103の方のリンク辿ってアップルから落とそうとしているのですが、
デベロッパとしてメンバー登録しなければ落とせないのでしょうか?
登録のために記入しなければならない項目が多い上、英語なので
何を記入していいか分からない項目もちらほら、、。
これ以上質問するとさすがに迷惑なので、一旦諦めてWEBをまわって
勉強してきます。

このスレのおかげでOS Xの面白さが見えた気がします。
ほんと超良スレ。
106105:02/02/09 00:54 ID:PIYpIJwO
ってその努力が全部エロの為だと推測されたら恐ろしくかっこわるいな、俺。
違うんですよー!
107名称未設定:02/02/09 00:54 ID:Zdhq33tB
このスレの人かこいい…
OS X買ったら使わせて頂きます。
10890:02/02/09 13:28 ID:BG8K+nAC
>>105
>デベロッパとしてメンバー登録しなければ落とせないのでしょうか?
そうです。オレも最初は登録辛かった。ガンバレ。
登録してDev Tools をDL&インストした暁には「make」し放題よ。
109名称未設定:02/02/09 13:37 ID:H0PWrjC3
>>108
え? 辛かったって‥なんで?
Developer Toolはオンラインメンバー(無料)なら誰でも落とせるけど‥
110名称未設定:02/02/09 13:39 ID:H0PWrjC3
あ、英語がわからなくて辛かったという意味なのね、スマソ。
11190:02/02/09 15:06 ID:BG8K+nAC
>>110
そう。
112名称未設定:02/02/10 04:23 ID:dMJRqv2M
初心者質問なので気が引けるのですが、、、

外部のスクリプトを実行するのに
set scriptfolder to "/Users/XXX/Library/Scripts/a_script/"
run script (scriptfolder & "sample.scr")
でエラーになってしまうのですが、ご指摘いただけないでしょうか。
113えろす=1:02/02/10 04:35 ID:W4GpJ9CW
こんな時間に即レスする自分に腹が立つが、
run script file (ふるぱす)
なら上手くいくと思われ。
run script "beep"とかね。
114えろす=1:02/02/10 04:43 ID:W4GpJ9CW
スンマソ。あとパスは、/Users/~みたいなUNIX式のパスじゃなくて
Darwin:Users〜みたいにコロンで書かなきゃいけないね。
パス取るにはいろんな方法があるんだけど、Coela使ってパス取るのが
一番楽かな。
115112:02/02/10 19:19 ID:bElxaKfT
せっかく即レスしてもらったのにお礼遅くなってすみません。
愛子タン見て寝てしまった。。。
ありがとうございます。
116名称未設定:02/02/13 04:21 ID:JFk4Y5mh
コソーリあげ
117名称未設定:02/02/14 19:39 ID:OSiOB81f
osascriptコマンドって引数とれないですよね?
Terminalからコンパイル済みスクリプトに値を渡したいのだけど。。
118名称未設定:02/02/14 23:30 ID:3c2Vvgmp
>>117
shell script の中で osascript 呼ぶようにすりゃいいんじゃない?
例えば、こんな感じで。
#!/bin/sh
# setcomment -c hoge hage で hage に hoge ってコメントをつける。
# けっこう手抜き。
while [ $# -ne 0 ]
do
case "$1" in
-c) shift;comment="$1";;
*) posixpath="$1";;
esac
shift
done
case "$posixpath" in
/*) ;;
*) posixpath="$PWD/$posixpath";;
esac
/usr/bin/osascript <<END
set posix_path to "$posixpath"
set the mac_path to POSIX file posix_path
tell application "Finder" to set comment of mac_path to "$comment"
END
#!/bin/sh
while [ $# -ne 0 ]
do
case "$1" in
-c) shift;comment="$1";;
*) posixpath="$1";;
esac
shift
done
case "$posixpath" in
/*) ;;
*) posixpath="$PWD/$posixpath";;
esac
/usr/bin/osascript <<END
set posix_path to "$posixpath"
set the mac_path to POSIX file posix_path
tell application "Finder" to set comment of mac_path to "$comment"
END
119えろす:02/02/16 23:28 ID:iPiRR9Dm
>>80 のスクリプトを発展させて、コマンド登録、実行スクリプトを
作ってみました。長いのでReadMeつけて下に置いておきます。
http://homepage.mac.com/ero_s/FileSharing1.html
Shellスクリプトなんかの呼び出しにいちいち作んないで、コレ使うと便利かも。
・・他スレでも宣伝しようっと
120えろす:02/02/16 23:42 ID:iPiRR9Dm
>>117
聞きっぱなしって良くないと思うよ。
121117:02/02/17 01:37 ID:1yKZVXLc
>>120
すんません。スレ自体を見失ってました。。

>>118
ありがとう。でもその方法では呼び出す度にAppleScriptのコンパイル時間の
ロスが微妙に気になって、だからコンパイル済みのスクリプトに変数を渡す
方法がないかなと思ってたんです。Rbではできるのになぁ。
122名称未設定:02/02/17 04:11 ID:zwnxUqIU
>>119
イイー(・∀・)!
123名称未設定:02/02/17 17:51 ID:JjVZiBHd
>>119
ありがとう。あっちでも感謝。

applescriptの記述(?)画面のままになってしまいました。
どうやったらいいんでしょう??
124えろす:02/02/17 19:08 ID:zWWHggvf
>>123
ReadMeに書いてあるScriptmenuでやると、起動時間がかかんないので楽。
あるいは、開いておいて別名で保存→アプリ形式で保存して、ダブルクリック。
125えろす:02/02/17 20:08 ID:zWWHggvf
>>121
そーでしたか、スンマセンでした。

コンパイル時間が気になるなら、特定のファイルを引数として読み込むような
AppleScriptにして、Shell Scriptで

#!/bin/sh
echo $1 > para.txt
osaascript ~/naninani
rm para.txt

とかってどうでしょう?引数が短くてイイなら、touchしてファイル名を読み込ませた
ほうが速いかな。既に考えてたらごめん。
126腐れ:02/02/17 20:20 ID:ojyHJViK
>へたれさん
curlにははじめから連番DL機能がありますよ。
curl -O 'http://hogehoge.com/file[03-15].jpg'
>>92
「^」は「ハット」と読みます。
127123:02/02/17 21:02 ID:2Mtn1hp9
>>124
ダブルクリックしたのは間違い?
128えろす:02/02/17 23:14 ID:ccr2/VPE
>>126
腐れさん、「^」ありがとうです。
へたれさんのスクリプトはCurlの連番補完スクリプトですよ。
http://hoge.com/ero50.jpg
ってURLさえあれば、01-50ってのを作ってくれます。
これと、AppleScriptを組み合わせれば、とりあえずキーボードなしで
連番がダウンロードできるようになります。
リンク先をクリップボード→AppleScript実行って感じで。

>>127
さっき試してみたらアプリケーション形式では文字化けするね。

だから、ダブルクリックは間違いでもないけどさ、
http://www.apple.com/applescript/macosx/script_menu/
からScriptMenuって奴をダウソして、解凍したものをダブルクリックすると、
メニューバーにスクリプトのマークが出来るはず。
そしたら、そのメニューから、Open Script Folderのメニューを選んで、
開いたフォルダに、Commanderを入れてください。そうすると、メニューから
実行できるはずだから。最初はSampleの方を使ってみて。
129名称未設定:02/02/18 16:58 ID:b+sMuok5
>>128
script menuから実行したけどエラーで全部実行不能だった。
一応報告しておくなりよ。

漏れとしては
"「@@」を「;;」する"......というのがプルダウン選択→結果が出るという物に
なってくれると嬉しい。
130名称未設定:02/02/18 21:03 ID:bLE4vVt0
>>129
System OSAXは入れた?ReadMeに書いてあると思うけど?
131129:02/02/18 21:27 ID:EcKRpN+8
>>130
入れたよ。

でもreadmeに書いてある~/Library/ScriptingAdditions
が無かったから自分でフォルダ作ったのが間違いか?
132えろす:02/02/18 22:19 ID:rW5g/4ow
~/Library/ScriptingAdditionsを作るのは間違ってないよ。
んじゃ、スクリプト自体を直接ダブルクリックして開いてみて、

色付きになってる?→コンパイルは出来てる
半角カタカナがある? ヌeventなんたらって→System OSAXが効いていない
system (Cmd_Str)って言う個所があれば→System OSAX自体は入っている

んで、よかったらどんなエラーが出るか教えて欲しいです。
ウィンドウは出るの、コマンドの実行がエラーになるってことですか?
133腐れ:02/02/19 01:59 ID:rS0hu4bF
>>128
失礼、キーボードをなるべく使わないでダウンロードできるようにしたいわけね。
ついでに質問なんだけど、シェルやPerlのスクリプトファイルの拡張子を.command
にするとダブルクリックで起動できるようになるよね。でも引数は渡せない。
ファイルをドラック&ドロップすると特定のシェルスクリプトの引数にファイル名を
渡してくれるようなAppleScriptとかってない?
つまりAppleScriptなどを経由してでもいいからシェルスクリイプトに引数を渡したい。
134121:02/02/19 02:27 ID:R7TbdO1r
>>125
コンパイルといっても1,2秒くらいのレスポンスなんで、
今回はファイルに書き出して受け渡すほどでもないかな。
でも、大きなAppleScriptに引数を渡したい時にはいいかもしれませんね。

>>133
こういうの別のスレで見かけましたよ。
http://www.apple.com/downloads/macosx/unix_apps_utilities/dropscript.html
135名称未設定:02/02/19 02:28 ID:BjTUXQEY
>>133
えろすさんの>>119はどうよ。家では問題なく使えるけど。
ドラック&ドロップではないけど、シェルスクリプトを登録して、
引き数をダイアログとかにすれば、カナーリ便利。
136129:02/02/19 12:51 ID:8voKZoKu
>>132
言われた通り確認してきた。間違ってたよゴメン。

漏れの間違いだった所はsystem.osaxを1階層深くしてしまった為らしい。
~/Library/ScriptingAdditions/systemOSAX1.0.7/system.osax
と解凍ままで置いていたんだが、それが駄目だったみたい

~/Library/ScriptingAdditions/system.osax
に直すと起動したよ。 ありがとう。

ただサンプルに書かれているゴミ箱のヤツだけはそれでも
エラーメッセージが出たよ。↓こんなカンジ
A script error occurred. Command execution failed...? 変な漢字null


あとすごく余談だけど、、、、漏れを含めたシロウトの為に
入力手順と簡単な実例になる物をマニュアルに書いておいたら、
どういうソフトか分かり易いと思う。(まあ手順は難しくないけど)
敷居の低さでは「cal■2002」とかでいいと思うんだけど。
実際自分でもそれを始めに入れてみた。

terminalに縁遠いヒトに上手く利用してもらるソフトだと思うけど
ぱっと見でどんなソフトかわかりにくいし、、、、
ちょい勿体ない

普通にOSXで出来ない事が「目に見えて出来るようになると」
漏れ等素人は「お〜スゴイジャン」ってなるしね。
137132じゃないけど:02/02/19 16:52 ID:qfSF2vo2
>>136
たぶん property Pass_Str に間違った値が入ってるんだと思う
もう一度 ScriptEditor で開いて
構文確認からやり直して(最後に改行を入れてみるとか)
それ以外のことは何もせずに Scriptmenu から実行してみて

あと、これはあんまり言いたくないけど
人が親切でつくってるものをマニュアルをつけろだの
もっと簡単にしろだの注文つけるってのはどうなの?
ScriptingAdditions にフォルダごと入れてる間違いに気付かないような人は
注文つける前に自分でやることがあるんじゃないの?
138136:02/02/19 20:35 ID:3a3A385L
>>137
そうだね書き方が悪かったよ。
する事があるよな。
フォルダの入れ場所間違う漏れが悪いわな。
注文というか感想のつもりだったんだけどね。


でもね、「Apple script」そのものの敷居が高いんだよ。
script書ける人間と書けない人間が分かり合えない所じゃない?
「勉強してから来いや!」と思われてるだけなんでしょうけどね。

なぜかいつも「プログラム寄りの人間」と「そうでない人間」で
分かり合えないけど
139名称未設定:02/02/19 20:56 ID:GxmaQOMS
エンヂニヤが仕様書嫌いなのは常識
140名称未設定:02/02/19 21:10 ID:R7TbdO1r
こういう売り物じゃないのは基本的に自分が楽するために作るからね。
ヘルプやサポートは予想以上に手間と労力がかかるもんです。
141えろす:02/02/20 01:54 ID:Ks9UE8uO
>>136-140
ご意見ありがとう、参考になるです。
このスクリプトに関しては、まだ0.1bだし、ちゃんとエラー処理もしてないんで、
そこらがちゃんと書けたら、マニュアルももう少しまともにするつもりですわ。
将来的にはAS Studioでも使って(使えれば)きちんとしたアプリ形式にする予定です。
だいぶ先になりそう。

あと、ごみ箱のやつは、ごみ箱にゴミが入っていないとうまく行かないです。
142 :02/02/20 23:12 ID:HlrKS+bZ
日本語と英語以外の言語リソースを削除(シェルスクリプト)
引数にパスを指定 ( 例: /Applications/OmniWeb.app )
実行は自己責任でお願いします。
----------------------------------------------------
#!/bin/sh
reslist="da de el fr is it ko nl no pt pt_BR ru zh_CN zh_TW"

if [ $# -le 0 ]; then echo "Usage : $0 <path>"; exit 1; fi ;

for res in $reslist
do
echo searching $res.lproj...
find $1 -name \*$res.lproj -exec rm -rf {} \;
done
----------------------------------------------------

zsh を使ってる人はコレ一発。
$ rm -rf /Applications/OmniWeb.app/**/*.lproj*ja.**Japanese.**en.**English.*

zsh 使ってたら機能的に tcsh に戻れなくなってしまった…。
143通りすがり:02/02/21 03:13 ID:2yaOQJRi
>>138
ここの人はいい人ばかりで、こんな事で波風立てて申し訳ないのだけど、

プログラム書いて貰った上に、マニュアル書けだの使い方説明しろだの言って
>>なぜかいつも「プログラム寄りの人間」と「そうでない人間」で
>>分かり合えないけど
ってのは無いんじゃない。

別にマニュアルなんて誰が書いても構わないんだし、
マニュアルがあった方が良いって言うなら自分で書いてみたらどうよ。
注文付ける前に出来ることはいろいろあるさ。
144名称未設定:02/02/21 23:24 ID:+pzp8i3i
OmniWebで見られないページを、そのまま
Internet Explorerで開けるApple Scriptってないでしょうか?
iCabのはネットで見つけたんですが、自分で書き換えてみても
ちゃんと動作しません。

まったくスクリプトの知識がないので、
もしつくっている人がいたら、おしえてください。
145名称未設定:02/02/22 12:21 ID:C+XhIfOg
>>144
そうかぁ
Omni って GetWindowInfo 命令がないんだね、シランかった、
用語説明みて即席でつくってみた
だいじょうぶだとおもうけど、ちょっと自信ない
不具合があれば報告よろしく
実行は ScriptMenu か便利です

tell application "OmniWeb" to set the_url to address of browser -1
tell application "Internet Explorer"
Activate
OpenURL the_url
end tell
146えろす:02/02/22 12:42 ID:PrMFdU11
>>145
あふん、先越された!
なので、URL取得の一覧作ってみました

tell application "Mozilla"
set Cur_URL to URL of window 1
OpenURL Cur_URL
end tell

tell application "iCab"
set Cur_URL to URL of window 1
OpenURL Cur_URL
end tell

tell application "Internet Explorer"
set Cur_URL to first item of (GetWindowInfo -1)
OpenURL Cur_URL
end tell

tell application "OmniWeb"
set Cur_URL to address of browser 1
OpenURL Cur_URL
end tell

開くのは皆一緒なんだね。Mozillaとネスケは一緒。
147名称未設定:02/02/22 13:40 ID:IKJyuMA5
OS Xでアプリケーションがクラッシュした際に出てくる、
「アプリケーション”hogehoge”は予期しない理由で終了しました」の
ダイアログをAppleScriptから閉じることは可能でしょうか?
Finderにいろいろ命令を送ってみてもうまくいかず困っています。
148親切な人:02/02/22 13:58 ID:u49nC+YQ

ヤフーオークションで、幻の人気商品、発見!!!

今は無き「コピーガードキャンセラー」↓
http://page.auctions.yahoo.co.jp/jp/auction/42757955

ヤフーオークション内では、現在、このオークション
の話題で、持ちきりです。
149144:02/02/22 14:41 ID:dn7wo+Da
>>145
スゴイ!!
ありがとうございます。
ちゃんと動いてます!
>>146
なるほど。iCabをOmniに書き換えるだけじゃダメなんですね。
勉強になったっす。

150144:02/02/23 00:00 ID:4DJzQExr
と思ったら、OmniWebで一番上に開かれているページが
IEに渡されるんじゃ無いみたいです。
たぶん、最後に開かれたウィンドウが渡されるみたいです。
151名称未設定:02/02/23 09:19 ID:9m4TUbSm
#!/usr/bin/perl
print "名スレ";
152えろす:02/02/23 14:03 ID:8vohLEGa
>>147
ちょっと検証してみましたが、惨敗しました。
あのウィンドウはFinderのオブジェクトではないとは思うんですが、
なんのウィンドウか全く見当もつかなかったので、SystemUISaverか?
と思ってAppleScriptからQuitしてみましたが、違うみたいです。
久しぶりにシステムあぼーんしちゃいました。

ちょっと無理っぽいと俺は思います。昔はOkey-docyってのがあったんだけど。
Quick keyまちかな。
ところで、どうゆう必要があるの?参考までに教えてください。

153名称未設定:02/02/23 14:21 ID:oI2I+X9Z
>>152
あのウインドウは loginwindow じゃないの?
SystemUIServer は MenuExtras とかその辺でしょ。
154名称未設定:02/02/24 00:19 ID:fhuhCpqi
>>152
わざわざすみません、恐縮です。
まだ不安定気味なデスクトップアクセサリを
スクリーンセーバ代わりに常駐させようとして

on idle
tell application "Finder"
set ProcList to name of every process
end tell
if ProcList does not contain "hoge" then
tell application "hoge"
activate
end tell
delay 10
end if
return 30
end idle

上のようなスクリプトで自動復帰させてると
ダイアログが最前面に何枚も残っちゃいまして。
Quickeys Xとの併用も検討してみます。
155名称未設定:02/02/24 02:12 ID:YMExgMiZ
先生面白い(今更)。
自分のためにシコシコかいたperlスクリプトを.commandで実行すること、忘れません。
んでperlスクリプト内で
require "jcode.pl";
&jcode'convert(*indexstr, "euc");
&jcode'convert(*indexin, "euc");
$indexin =~ s/$indexstr//;
なんつって置換しようとしたら置換されないわ文字化けするわで半泣きです先生。
jterminal使ってないからいけないんですか!
最新のjTerminalとNJEだとウィンドウを開くや閉じます。うわーん。

あとScriptmenuって、起動する度にメニューバーに登録しなくちゃ逝けないんですか?
156155:02/02/24 02:14 ID:YMExgMiZ
すれ違いの予感。
157えろす:02/02/24 21:23 ID:h+UwTbkB
>>155
perl4の構文じゃない?それ・・・。5で書けぇゴルァ(゚Д゚#)!

あと、スクリプトメニューは一回起動すれば、ずっとメニューにあるけど。
なんないの?まぁ、ログイン項目に入れとけばよいかと。
158えろす:02/02/24 21:28 ID:h+UwTbkB
>>153
152はSystemUIServerが違うってことがわかったってことです。
loginwindowなのかな。どっちにしろスクリプトで制御するのは無理っぽいですね。

少し試してみたら、面白い構文発見してしまった。強制ログアウト・・

tell application "loginwindow" to quit
159155:02/02/25 00:08 ID:XYAXurJM
>>157
叱られた!
4と5の構文で違うの!?
厨問で申し訳ないのですが解説キボンヌ。と。
160えろす:02/02/25 19:27 ID:dDu1HcWo
>>159
http://www.att.or.jp/perl/faq/faq1j.html#1-2
俺も詳しくないけど、ここに少し書いてあります。
一応Perl4のコードは5でも通るように出来てて、互換性はかなり高いです。
けど、今更4はないんじゃないかと思ったのよ。エラー自体は、おそらく
別んトコのコードか、開くエディタとか、外堀のせいだと思うよ。Terminal
は関係ないよ。(標準入力とか使ってるわけではないよね?)

jcode.plは試したけど、普通に使えたよ。jcodeのページのサンプルで
試してみたら?
161えろす:02/02/25 19:29 ID:dDu1HcWo
↑アンカーが引っ掛かる・・宇津氏
http://www.att.or.jp/perl/faq/faq1j.html
162名称未設定:02/02/28 01:17 ID:agkekeqw
http://pc.2ch.net/test/read.cgi/mac/1004680972/l50
ここの>>295なんですが
http://ime.nu/www.geocities.co.jp/SiliconValley-Cupertino/5226/j2ch-cache/index.html
このj2ch-cacheを起動するアップルスクリプトは可能でしょうか?
j2ch-cacheはシェルスクリプトを実行して起動します。
そのシェルスクリプトの中身はコマンド一発なので
コマンドを投入できさえすればいいんですが、、、
16322:02/02/28 02:06 ID:pjFdW3V6
みなさん、お世話になります。
あれから色々Terminalについて勉強してますが、む、む、難しいです。
ちょっと書いてみたのでツッコミよろしくお願いします。

>>162
初回起動時のみ、「j2ch-cache-0.41フォルダ」を選択してください。
最後の行の後に自分の好きなブラウザを起動させて、http://127.0.0.1:7524/を
読みに行くようにするとよいかもです。
まぁ、起動に時間かかったりするから、お気に入りから入る方が良いかな。

property Cache_Folder : {}
if Cache_Folder = {} then set Cache_Folder to choose folder with prompt "j2ch-cacheフォルダを選択してください"
set Old_Delimiters to AppleScript's text item delimiters
set Cache_Path to Cache_Folder as text
set AppleScript's text item delimiters to ":" as Unicode text
set Path_List to text items 1 thru -2 of Cache_Path
repeat with A in Path_List
set contents of A to A & "/"
end repeat
set Full_Path to ("'/Volumes/" & Path_List as text) & "/bin'"
set AppleScript's text item delimiters to Old_Delimiters
tell application "Terminal" to do script with command "cd " & Full_Path & return & "./j2ch-cache.sh"
16422:02/02/28 02:46 ID:pjFdW3V6
鬱氏
10.1.2以降ならこれで逝けるみたいです。
今から首吊って逝きます。
POSIX・・・・過去ログに出てたのに意味が解ってなかったっす。

property Cache_Folder : {}
if Cache_Folder = {} then set Cache_Folder to choose folder with prompt "j2ch-cacheフォルダを選択してください"
set Cache_Path to Cache_Folder as text
set Cache_Path to "'" & POSIX path of Cache_Path & "/bin'"
tell application "Terminal" to do script with command "cd " & Cache_Path & return & "./j2ch-cache.sh"
165162:02/02/28 08:37 ID:agkekeqw
22さん、ありがとうございました!!!!!
うまくいきました!!!!!
やった、これでラクチンに起動できます〜〜〜感謝感謝。
みなさんも使ってみて下さい。いいですよ。j2ch-cache。
166162:02/02/28 23:21 ID:agkekeqw
こんばんは。今朝は出勤寸前だったので適当なレスでした。
22さん感謝してます。
このスクリプトを実行したときにTerminalが起動されていない
場合だと、Terminal起動時に開くウィンドウとスクリプトからコマンドを
実行されたため開くウィンドウで2つ開いてしまいます。
別に気にしなければいいのですが、改造を考えてみても私には無理でした。

最後の行のto do script with commandの部分で新たにウィンドウを開いて
コマンドを実行してるようなので別の何かに書き替えるといいのかな?
初心者ですまんです。
(追伸。POSIX path of Cache_Pathは/区切りのUNIXのパス表すということで
いいんですよね?)
167名称未設定:02/02/28 23:38 ID:1zRqgUfv
10.1.1以来の余計なお世話的仕様、「Dockから一定の距離を置いて
デスクトップアイコンが整列する」のせいで、右の縦位置にドライブ
アイコンを置けません。
『アイコンの配置条件』を「なし」にすれば、Dock近くに置けなく
もないですが、なにかあるとすぐにとんでもない位置に再配列してく
れたりします。

で、ClassicMacOSにはよくあったスクリプトですが、デスクトップ
のすべてのアイコンの位置を記憶して、起動一発でその位置に並べ
なおすというステキなスクリプトってできないものでしょうか。
自分でやってみようとあれやこれや試してみたのですが、やっぱり
なーんも知識がないのでダメでした。
古いスクリプトでも動いてくれればうれしいんですが……どんなも
のでしょう。ご教示ください。
168えろす:02/02/28 23:50 ID:2Uz3e87H
>>166
TerminalのWidowを全く表示しなくて良いのなら
do shell script "cd <install-dir>/bin ;./j2ch-cache.sh"
の一行で良いと思うよ。でもこれTerminalでログ吐くの?

Trminalを起動した時には、勝手にWindowを開きます。
また、Scriptからコマンドを実行した時もWindowを開きます。
結果1枚余るんです。

だから、起動→Windowを閉じる→コマンドを実行
tell application "Terminal"
activate
close window 1
do script with command "cd <install-dir>/bin ;./j2ch-cache.sh"
end tell
で良いかと。
16922:02/03/01 01:24 ID:Zi6+iAPZ
なるほど、初回起動時に新規Windowが開くのですか。
Terminalの環境設定で起動時に「何もしない」を選びます?
普段はcmd+Nで新規開くという事で。

>えろすさん
colse window 1だと逆に何らかのプロセスが走っているWindowがある場合に
終了を促すダイアログが出るのを気をつければこっちのがいいですね。
あと、セミコロンで逝けるんですね、知らなかった。やっぱ勉強不足。
170名称未設定:02/03/01 01:58 ID:zT8KcG4h
.cshrcに適当に書き足す、というのはだめ?
17122:02/03/01 04:52 ID:Zi6+iAPZ
>>167
一応、position of every item of desktop とやると、
-->{xxx,yyy},{xxx,yyy},{xxx,yyy}
とか返すみたいなので、出来るのかな?と思ったけど、どうやら
Finderウインドウ上でのポジションみたいです。
デスクトップにあるアイテムの本当の場所のポジションという事かな。

ちょっと無理っぽいような気がします。
この件、アポーにゴルァしてみるのも良いかもです。
172167:02/03/01 06:32 ID:7pTUlu0T
>>171
なるほど。
たしかに、例の仕様が追加されてから、結構不満の声が出てますから、
誰かがそういうスクリプトを作っていて不思議ではないと思ったんで
すが、仕様的に無理というのならばなんとなく納得が行きます。
やはりアポーに文句言う鹿ないのでしょうねえ。
173へたれ:02/03/04 14:46 ID:aj7oP3tT
お久しぶりです。マイマシンが崩御されてしまって不便な毎日を過ごしてます。
ヨドバシから書き込んでみたりしてます。

>>170のえろすさんの、これでもいけないかな?
tell application "Terminal"
activate
do script with command "cd <install-dir>/bin ;./j2ch-cache.sh>&/dev/null &"
end tell

これでも新規WINDOW、開かれるかな。どんなshell scriptなのか確かめられないので
ものすごい適当ですいません。
んで「;」はshでの改行の意味です。これが入ってると改行(コマンドの区切り)
として扱われます。複数行にまたがるコマンドを1行で書く場合に入れときますです




174へたれ:02/03/04 15:29 ID:OvO2wcW8
書き込んでから思ったんだけど、>>173じゃ駄目だね。
Apple scriptからTerminal呼出すと、新たにwindow作って
そっちでコマンド実行するんだった。アホだな>オレ

なんでwindowを全く表示させないようにするには、
えろすさんの様にdo shell script使うか、
systemOSAX入れるかしか無いのかな。
ただsystemOSAXからshell scriptを実行するには
shの引数として渡してやらないと、動かなかったような気がする。
175名称未設定:02/03/04 17:38 ID:HrN7pExH
Dockを隠すスクリプトをDockに置いといて、
ワンクリックでDockを引っ込めたいんですけど、できますかね。
できれば、もう一度そのスクリプトをクリックすると
Dockが隠れないようになってくれるとうれしい。
176名称未設定:02/03/04 17:59 ID:17Gl/OqO
>>174
たぶん、初回起動時だけ新規ウインドウとAppleScriptから命令したウインドウと
ふたつ開いちゃうので嫌なんでしょ?
Terminalの初期設定で開かないようにすればいいだけでは?

>>175
1ボタンマウスだと、control+クリック、選んで放すだけだね。
2ボタンマウスだと、右、選んで放すだけだね。

アプリ登録部分とフォルダやウインドウの部分との境界でするんだよ。
スクリプト、ぜんぜん必要じゃないよ。
てか、doc.appはスクリプタブルじゃ無いじょ。
177名称未設定:02/03/04 18:05 ID:e4HahF+M

誰か、AppleScriptStudioで、最初に表示されるウィンドウをフローティングにする方法と、
特定のアプリケーション(たとえばIllustlatorとか)でのみそのフローティングパレットが
アクティヴになる設定方法知っていたら教えてください。。

178えろす:02/03/05 02:19 ID:ZctZiSrt
>>173
ご崩御されましたか・・、ご愁傷様です。俺も、最近HDクラッシュ
しちゃいました。ヨドバシからカキコ・・・・、ガムバレ!(w
curlの分割スクリプト期待してマスです。
179名称未設定:02/03/08 17:31 ID:XsOWxpsW
あげげ
180名称未設定:02/03/13 22:33 ID:AfDGOQIi
唐揚げ
181初心者200号:02/03/16 22:22 ID:u+0dTjNy
Terminal初心者質問スレでrmで消さずにゴミ箱に移すスクリプトを書き込んだ物ですが、
こちらで書き込んだ方が良いようなので、shで書き直した物を、書き込みます。
完全にrmをエミュレート出来てないので、手直しや、ご意見など仰げれば、ありがたいです。
使用法は中に書いてあります。biginからendまでをテキストエディターで適当に保存し、
StuffIt Expanderに放り込んでやれば解凍出来ます。
182初心者200号:02/03/16 22:22 ID:u+0dTjNy
begin 755 safeRemove
M'XL("-%!DSP``W-A9F5296UO=F4`M1A;;QM5^MGS*TXF%B)!CI,L$E(K+W%2
M.UBDB64G39$;:C<>)[/K&[93"*45\XT02=M<VL3)"Z!250A2086JMB"UJP6E
M:8W270D02-!*14BKM+M(Z1L"'OC.92Z><0HL[D2*YYSSW>]G6EO\A]2\OSPI
MM4JMA)13&26FY`J'%2U<RL%F*JNFRE";GX!SL+%Z`\[">W`7+L%]N`EG]?WZ
MH'Y</ZQ/P'6XHO5*K5J/_4^OZ#UZGWX"MA'O/&)LS?VP\`9<@7M(Y0?8@IH6
MU./ZL>4S4+-@G52J/R'>6W`';E,>\Q.KQ94>N(7";2Q=@,M4'JT7:=^#K^%]
MW-W6^_5C^FOZ22VA3SAI,=[_05UJJ,,ZHWD)KFF],_=GW]*"QQ6]B%B*WJOO
MTU_7EV#3D,Y)9^D7D\Y-^`0IW3;TGY_0>E:+6L]*CQ:&#Y&"9:-M;<IFWL.P
M@58Y9^B]<A6N5[\]==DE,97S??@'G-5Z+5I+=^'ZW/J)X%($)7!P<5(XN0Y?
MPB9<UX+59^$C"KUR=66(!2ODAIN_@B?#0X_`QLGOZ,:7@/Y?T0_@LUX8\'
MZ/.S<(U*!NM:T(EO"Y[%.Z>W&#,.?@&#YU\BE#8,HZT6%[X_/3?SA1:V&>0V
MPM_2,^B.DZC>A'X<]VJHZC0Z:3^LH1.$8&[V)WJ6#R#/V_`Q/-!ZEWY:.7+R
M/MR"&^BRFR+\WL,`%.>NP'T9.;QJYPS;,]^AL^K#HS;S#=.KH03HC@-<SI6+
M:&8>)E2B<[.?+A]8/`]K<(9)<K<!?Q%V@OY=89,E_:"6@,WJS^B\*_`!U):O
MS6;0?2P9YU=@S>7$,TQ'#,TZ"MLHVW[]>9H@/!DQ#>?T(7H.ETY?Q;T-)R4C
M];5>WRAL^*(8<A$,-VZ'6_/_/^DNY@3PR=+93E'?AH878Q/O\YK,W]#^UQ
MK?HN2HZA>:(/MJL5C(QU+#2?/"PL5RXN?K'<A_N2U/I_/[30[?`<_TKK65S>
M\;CUSW#%[)]0R.-MY(CD43,D0;Q=)$#D0E$F8[M)95+)2QY/9&`@D%3&)PO$
MVTU>(942\:6)G$AGU&BL-#KFDY,(Q,YE;^<NHF:SRD0J2PKセK($Y^/>)&"
M3+K^^EBWY,FHDH!EO'<1;R=)^`Q:)*-F%=+1T6&`*R^I%>FH))58A1*2,GQ?
MGLABUWLD/CP2#A]]FAAH)265)GU#@V'),YXJ(P1])RK5)O'<]!AJ,:V4VW"%
MD)6I$MW?O1O_M1.VR;CR+:6<&J<"5$JI\J3@STEV<WKM"?]8.\.*,2D"R4-X
MG$_E*$C205B`>+OMU#UUMB^F2A6[]=F13R'^?87L5$XI^[VQ?4,#_HYA*A!=
MCD3VX!XC;$/SL!Y:RA%?)O:[<$V<W&&JVT-1J+^S9>4/HE#7"],J69O&DX6<
MTDCC8X+$;VGGA'.(91XWEMI^;),07X\^HH2N_IN01Y70P5C_OH"W74('!)),
MRVS9=$Q20D\$DFJ:^*:2%#0>D-,D0U02);$2&96EOCV1F,`KOIA.2H,C>P-=
MC\`,,S\N+F.=O02;"_?G7F^^&7ATM6(4O4`ZK;CAY:Y30N<V52?1',_0!H)M
MY2:V)?;6?)U:ZA+#TBSW][2*=3E'GNKL-,^9GIE"B80P'+!:$2_^2NF"J#<M
M]64EY$I:6\+5T7\8#LN<="&O-,7"MHZ^K2?UL'Y('X0-<S!?J[Z-<62/H3]E
M86HJS`IF*9I(S%2LV,MT+8L&XAMK3[08':N]C=""PB.K4&2(1M%GD!8@A1,L
M0@:/.-VD;/!Q<?+0[D+7(8&-3W@@V!^0O?2'G<A\G_'SB'Y"*>856^MA(H8C
M`Z$X1:6_C#G#%1W)$IO1X![DE1@;+4>R%>FR4B%\DP:9F6YH@VX+B"I+89BR
M')CK:MTYB(^IPH\E(3>KP,W,42M@3EV>NX-E1V0H#1Q\O]&T'!4N9#;E3I1E
MZCFC\%`#,_M:">AU]#9KD.(GN\A@@92GQB?Y;(0FQ4Q4QBN%TG3=D-34FF;+
MNQI>*N\MS*R^"9N+([!578,+S:MI?))B$4"-U9[(L$BG8<@G)@<`30C52`;7
M&3V-E:Q<X>,A7Z"D8K!(NTS.'VQ]H;[AH=AS5N/T!05LT@"R,L($EYV$6-Q'
M!N.1/3SR34@30"0\>^RYH,8$/[^7X]LP\HJQ8%.*"]=0RS@3,ZP=010)8QAU
M6,@S_$QL)"!/-ZXH;,D71@R[O2>,;[EO9XN[G8>ETG1=:&]T9R]P5`0QW8Y9
M9JID*&G3LD%.[3%RB.0+%:+DBA4SFUSF,R@:IC`V3`9N\FJ9I-QY6D>7$Q$T
MJ8=V-FN4VX6S\45)3OV;6BX7ICI([O&#Y&!;SF3`J3/[)T;KL$9_#Q;GW[0J
M0I8?Z!&\TJM:0@LNG(+S])M9M3S[J7OL:\ID-&3$F:]`ER_6+_M=4<@-3<->
M=/;IL3;'A6T@;HO#K#T.V5PU$&<9/F!OX[P9XN2,=YNN^MH0#<7V!KPA#FY>
M@CCH7^I!AT8'=X)\LAZR/Q:U($6JT[D]J;Q4+'&<)TA7TC866!=H3/Y224VC
M%:AHA'B1K=^+%`E5SWVO]MAOUA[7W9K?KML:)TG#P#<'CF:/Y%;/WQ;3^5<S
MWRQ]X`)K0OOB444-8`[&+/-<D[<1(DXT?!PCM5$'Z44ZP+;<IA/.Y!\FZ%<#
M<_#@%2#1XC_&2X!P$_8AP:Y>SH:26DW*A>T2UVRX3GD;U$ZSD364VT`PHH8#
9T0\$;B"S&0GHAK!F46/A]RL)NUV/6A@``.T2
`
end
183初心者200号:02/03/16 22:23 ID:u+0dTjNy
beginね
184へたれ:02/03/18 07:35 ID:DXO6Nrth
>>178
友人からモニターをレンタルして繋げてみたら、なんとか
復活しました。しかしiMacともおさらばする時期か‥‥。
curlでの複数のファイル同時DLスクリプト、書いてみようと思ったんですが、
どうやってループを回すかで悩んで止めてました。も一回ちょっくら小一時間ほど
考えてみます。

>>181-183
おお、便利そうだ!と思ったんですが、デコードできない‥‥。
stuff itでもエラー出てしまいます。tar 玉をuuencodeしてるのかな。
んでせっかくなんであげとっきましょう。

で、久々なんで使い捨てスクリプト。HOMEを移動するスクリプトです。
一回使うと2度はそんなに使わないと思うけど、HOMEが/Users以外でも
大丈夫です。OSの再インストール時にでもお使い下さい。
185へたれ-HOME変更スクリプト:02/03/18 07:38 ID:DXO6Nrth
#!/bin/sh
#ほとんどエラー処理〜
CMDNAME=`basename $0` UNAME=$1
USAGE=" Usage : $CMDNAME username target_dir"
OLDDIR="`nigrep home . /users/$UNAME|awk '{print $4}'`"
TARGET="$2" NEWDIR=
if [ $# -ne 2 ] ; then
echo "$USAGE" 1>&2
exit 1
fi
if [ -f $TARGET ]; then
echo "$TARGET is alredy exist" 1>&2
exit 1
fi
if ! niutil -list . /users|awk '{print $2}'|grep $UNAME >/dev/null ;then
echo " $UNAME is bad UserName!" 1>&2
echo "$USAGE" 1>&2
exit 1
fi
if echo "$TARGET"|grep '^/' >/dev/null; then
NEWDIR=`echo "$TARGET"|sed 's/\/$//'`/$UNAME
else
cd "$TARGET"
NEWDIR="`pwd`"/$UNAME
fi
echo "";echo "Moving Home to $NEWDIR..."
sudo sh -c "ditto -rsrcFork \"$OLDDIR\" \"$NEWDIR\";
niutil -createprop . /users/$UNAME home \"$NEWDIR\"
mv \"$OLDDIR\" \"$OLDDIR\"~;
ln -s \"$NEWDIR\" /Users"
echo " ...Done"
exit
186へたれ:02/03/18 07:48 ID:DXO6Nrth
>>185の使い方
% comannd username target_dir
これでHOMEの内容をコピー、NetInfo のhomeを変更、
以前のHOME→HOME~とrename、/Users以下にsymlinkを作成、
を行います。

んでこれのApple Scriptバージョンを練習をかねて作ろうとしたんですが、
しょっぱなでつまづいてしまいました。どうせならUserlistをNetInfo dbから
所得して、それをlist表示させたら面白いかと思い、↓な感じで行いました
set uList to system ("nigrep uid . /users | sed -n '/ 5[0-9]*$/s/\/user' | awk '{print $2 }' | tr \\n ,")

ええ、ええ、構文チェックでエラーが出ました‥‥。
大人しくHOMEはchoose from folderで指定した方が良いのかな。
このあたり、何かご助言がありましたらよろしくお願いします。
それではイッテキマす。
187名称未設定:02/03/18 08:59 ID:347fi8Z5
>>181
>初心者200号さん

iDiskにでもアップロードした方が早かったんじゃない?
188名称未設定:02/03/18 12:24 ID:TdOOra13
>>186
system attribute コマンドじゃだめなの?

system attribute "HOME"

で、HOME のパスがとれますが‥
なんか、的外れっぽいのでサゲ
189初心者200号:02/03/19 23:22 ID:LiCzX9Ms
ごめんなさい
>>182はなんかいくつか文字が勝手に抜け落ちたりしてました。
仕様?
ってことで
ttp://freehome.kakiko.com/shoshinsha/
にアップしときました。
190名称未設定:02/03/19 23:44 ID:OWN/hbh2
#!/bin/sh
# skel -- make skelton file

echo "plz set script name"
read NAME
if [ -z $NAME ];then
echo "you must type \"file name\""
fi

if [ -a $NAME ];then
mv $NAME $NAME.bak
fi

cat << EOF > $NAME
#!/bin/sh
# $NAME --

EOF

chmod a+x $NAME
191修正:02/03/19 23:46 ID:OWN/hbh2
if [ -z $NAME ];then
echo "you must type \"file name\""
fi

if [ -z $NAME ];then
echo "you must type \"file name\""
exit
fi
192発展(前半):02/03/20 00:15 ID:v0Sr//2u
#!/bin/sh
# skel -- make skelton file

PERL=`which perl`

echo "make skelton file for \"sh\" or \"perl\""

echo "plz set type"
echo "[P] or [S]"
echo "[P] mean perl, [S] mean sh"
read TYP
if [ -z $TYP ];then
echo "plz set script type"
exit 0;
fi

echo "plz set script name"
read NAME
if [ -z $NAME ];then
echo "plz set script name"
exit 0;
fi
elif [ -a $NAME ];then
mv $NAME $NAME.bak
fi
193発展(後半):02/03/20 00:19 ID:v0Sr//2u
case $TYP in
p | P )
cat << EOF > $NAME
#!$PERL -w
# $NAME --

EOF ;;
s | S )
cat << EOF > $NAME
#!/bin/sh
# $NAME --

EOF ;;
* )
exit 0;;
esac
chmod a+x $NAME
exit 0
194名称未設定:02/03/20 02:25 ID:v0Sr//2u
*)
echo "you must choice [P] or [S]
exit 0;;
195へたれ:02/03/21 08:22 ID:iqsEaUgK
>>189
力作!!素晴らしい。しかしrmをエミュレートするのは結構難題だね。
んで失礼ながら、少し思ったことをば。

同じファイル名の場合を考えるなら
id=`date +'%Y%m%d%H%M%S'`
mv $FILE $id$FILE
とでもしとけば、よっぽどのことが無い限りuniqな名前を付けられる。

scriptを再帰的に呼び出すんなら
me="`pwd`/`basename $0`"
てな感じでscriptのフルパスを変数に入れとけば
使う人の環境に左右されにくくなるyo。

それとスペース付きのファイルやディレクトリも考えるなら、
ARGV="$@"としてこれ以降ファイルの可能性がある場合すべてにおいて
クォートしといた方がいいかもね。
196名称未設定:02/03/21 10:10 ID:itI+AhDV
>>195
細かいけど、実行のスクリプト自身のパスを取得するなら、
me="`dirname $0`/`basename $0`"
じゃないかな。
197名称未設定:02/03/21 10:38 ID:itI+AhDV
と思ったけど、
me="$0"
これだけでもいけるかな?
198へたれ:02/03/21 13:03 ID:EN+drHQL
>>196-197
あら、やだ。pwd使うと、返すのはカレントのパスだわね。
訂正ありがとう。フルパスをとる必要も無いか。
何故フルパスとらなきゃと思ったんだろう>私
で、レスついでにOS Xのメンテナンス用のApple Scriptを。
/etc/daily,weekly,monthly及びprebindingをするだけですが(要 system osax)

property passwdStr : ""
set LF to ASCII character 10
set Cmd_Str to "sudo sh "
if (passwdStr = "") then
set passwdStr to askPassword
if (passwdStr = "") then return
end if

set mList to {"Daily メンテナンス", "Weekly メンテナンス", "Monthly メンテナンス", "システムの最適化"}
set mMethod to choose from list mList
set mMethod to mMethod as text
if mMethod is "Daily メンテナンス" then
set parm to "/etc/daily"
else if mMethod is "Weekly メンテナンス" then
set parm to "/etc/weekly"
else if mMethod is "Monthly メンテナンス" then
set parm to "/etc/monthly"
else if mMethod is "システムの最適化" then
set Cmd_Str to "sudo /usr/bin/update_prebinding -root "
set optList to {"/(システム全部)", "/Applications(Appli Folderのみ)", "好きな場所"}
set optPath to choose from list optList
set optPath to optPath as text
if optPath is "/(システム全部)" then
set parm to "/"
else if optPath is "/Applications(Appli Folderのみ)" then
set parm to "/Applications"
else if optPath is "好きな場所" then
set parm to posixPath (choose folder with prompt "お選び下さい") with quotes
end if
else
return
end if

set Cmd_Str to Cmd_Str & parm & " <<++" & LF & passwdStr & LF & "++"
system (Cmd_Str)
199へたれ:02/03/21 13:14 ID:EN+drHQL
>>198はsudo に-Sオプション付けるの忘れてます。
訂正は下の通り。

スクリプトの3行目
set Cmd_Str to "sudo sh "

set Cmd_Str to "sudo -S sh "

スクリプトの19行目
set Cmd_Str to "sudo /usr/bin/update_prebinding -root "

set Cmd_Str to "sudo -S /usr/bin/update_prebinding -root "
200えろす:02/03/21 21:49 ID:alh+xgHK
200get!記念スクリプト。Perlです。何でPerlなのかは謎。

#!/usr/bin/perl

$count = 1;
&AS;
&search1 ($targetdir);

sub AS{
$para = `/usr/bin/osascript -e '
tell application "Finder"
activate
set Target_Dir to choose folder with prompt "検索対象のフォルダを選択してください"
set Target_Dir to POSIX path of Target_Dir
set Save_Dir to choose folder with prompt "保存するフォルダを選択してください"
set Save_Dir to POSIX path of Save_Dir
display dialog "対象にする拡張子と移動方法を選択してください。" default answer "jpg|jpeg" buttons {"Copy", "Move", "キャンセル"}
set {ASuffix, AMethod} to {(text returned of result), (button returned of result)}
display dialog "ファイルの先頭文字列を入力してください。" default answer ""
set APrefix to text returned of result
return {Target_Dir, Save_Dir, ASuffix, APrefix,AMethod}
end tell
'`;
$para =~ s/\s//g;
chomp $para;
($targetdir,$savedir,$suffix,$prefix,$Method) = split /\,/,$para;
}

sub search1 {
local($dir) = $_[0];
local(@filelist, $file, $filename, $filetype);
opendir(DIR, $dir);
@filelist = readdir(DIR);
closedir(DIR);
foreach $file (@filelist) {
if ($file eq ".") { next; }
if ($file eq "..") { next; }
if ($file eq ".DS_Store") { next; }
$filename = $dir."/".$file;
if (-d $filename) {&search1($filename);}
$_ = $file;
if (/\.[$suffix]/i) {
if ($Method eq "Move"){&rename($filename);}
if ($Method eq "Copy"){©($filename);}
}
else {next;}
}
}
201えろす:02/03/21 21:50 ID:alh+xgHK

sub rename {
$num = $count;
$num = sprintf("d",$num);
$newname = $prefix.$num."\.jpg";
rename $filename,$savedir."/".$newname;
$count++;
}

sub copy {
$num = $count;
$num = sprintf("d",$num);
$newname = $prefix.$num."\.jpg";
`cp $filename $savedir/$newname`;
$count++;
}
202えろす:02/03/21 22:00 ID:alh+xgHK
んで、説明。Wgetなんかで階層を作ってダウソした時にファイルの
移動が面倒くさいので作りました。階層構造をたどって、指定された
拡張子のファイルを探して、一つのフォルダに連番で移動 or コピー
します。

使い方は改行コードをLFで保存して、スクリプトメニューに入れて
実行。ちょっとタイムラグがあります。ファイルを探すフォルダ、
移動先のフォルダ、対象ファイルの拡張子、移動後のファイルの名前
の最初の部分、方法(移動かコピーか)を入れて実行します。

対象とするフォルダと保存するフォルダを一緒にして、移動すれば、
連番リネームできます。ero0001.jpg,ero0002.jpg,........って。

それと、移動は少し危険ですので、なるべくコピーを使うとイイかも。
203えろす:02/03/21 22:03 ID:alh+xgHK
がはっ!200get記念スクリプトなのに致命的なエラーがありました。
コレじゃjpeg専用です。すぐ訂正します。スンマセン。
204えろす:02/03/21 22:27 ID:alh+xgHK
訂正して
http://homepage.mac.com/ero_s/FileSharing1.html
に置いておきました。rename.pl.sitって奴です。鬱だ・・。

あと、ダウンロードスクリプトの発展版を書いているんですが、
へたれさんの連番ダウソスクリプトもwgetのやつも、まとめて
一つのメニューから出来る様にしたいんで、へたれさんの
スクリプト同封しちゃって良いでしょうか?>へたれさん
205名称未設定:02/03/22 11:30 ID:agGswUwK
>>189
すべてのメッセージ表示を
echo "xxx" 1>&2
と標準エラー出力に送ってるみたいだけど、
通常の標準出力と標準エラー出力はちゃんと区別したほうがいい。
206初心者200号:02/03/22 21:00 ID:E9BalQwM
>>189のリンク先、ちょっとだけ書き直しました。

>>206
すいませんマジで初心者なもんで、その辺よくわかってないです。
usageなんかは標準出力で良いのでしょうか?
207へたれ:02/03/24 22:36 ID:TzPUaKyg
>>206
いくつか入力を促すメッセージがあるけど、そういったのは標準出力でいいかと。
基本的に名前通りで、
標準エラー:エラーメッセージの表示(間違ったオプションやコマンドがエラーを返した場合)
標準出力:通常のメッセージ

あとやっぱり位置パラメーターを展開するなら、#*より"$@”を使った方がいい。
$*だと引数に変な文字やスペースがはいってると、どえらい結果に
なるやもしれません。参考リンク
http://www04.u-page.so-net.ne.jp/zd5/hiro345/UnixBourneShell/UNIXshellProgramming-3.html#ss3.5
208へたれ:02/03/24 22:45 ID:TzPUaKyg
>>204
全然いいっす。ただまた書き直してまして、多少オプション変わったり、
新しいオプションが付くかもしれません。やろうと思っていることは↓な感じです
・複数ファイルの同時DLが出来れば嬉しい
・iria 形式の入力もサポートしたいかな〜、ttp://でもいければなお幸せ
・urlを書いたファイルから読み込もうかな
・DL directoryも指定出来れば、なお嬉しい
・DLに失敗したfileをいってくれると、後でがっかりしなくて良くない?ねぇ?
・予定は未定
あんま時間とれなくて半分程度しか書けてないですけど・・

>>200-201のスクリプト、おもしろいですね。
osascript使って、dialog出して色々選択させるのは今まで思い浮かばなかったです。
引数が無ければosascript 出すって感じにすれば、command line、スクリプトメニュー、
どちらからも利用出来るようになるかな。
しかしこの文、少しワラタ。名に恥じてない。
> コレじゃjpeg専用です。
209えろす:02/03/27 00:10 ID:mTuA+qfu
>>208
どうもです。コマンドラインの引数の有無で、ダイアログの選択させるってのは
考えていたんですが、引数の処理が面倒くさくって止めました。長くなっちゃう
んだよね。アレ書くと。

で、もう新しいスクリプトでは、Perlを使って、URLリストからttpでもh
でも、連番でも、まとめて逝ける機能を考えてます。コレが出来れば半角も
ばっちりですわ(w。
210初心者200号:02/03/29 22:44 ID:G7Oi7jim
>>207
遅ればせながら、ありがとうございます。
スペースの件は何とかやってみました。複数ファイルを指定したときも移動出来ると思います。
ttp://freehome.kakiko.com/shoshinsha/

標準エラーの件なんですが、rmのソースを見てみたんですが、
remove?もoverride?もfprintfでstderrに出されてるみたいなんですが、
shとcは違ったりするんでしょうか?
とりあえずそこは手を付けずほったらかしです。
211名称未設定:02/03/30 07:20 ID:ejtx7v4l
うに板よりレベル高いってのにワラタ
212名称未設定:02/03/31 12:56 ID:7LGE7037
ここの「変数に対するパターンマッチ」って何かに使えない?
http://www.atmarkit.co.jp/flinux/rensai/theory08/theory08a.html
213えろす:02/03/31 23:04 ID:z1z5/A3O
ダウンロードスクリプト発展させました。下のAS_Downloaderって奴です。
http://homepage.mac.com/ero_s/FileSharing1.html

Internet Explorer ,NetScape ,Mozilla ,iCab ,Omniバージョンをそれぞれ、
作ってみました。へたれさんの連番展開スクリプトも呼び出せます。
あと、PerlでURL抜き出しスクリプトを書いたんで、URLをテキストとして
書いてあるページや、半角とかも逝けます。(w
214名称未設定:02/04/01 00:01 ID:tF7vUGU7
>>202
perl中でoascriptを使うというのはMacならではの技ですね。
階層的にディレクトリを検索する部分はfindを使うと楽ですよ。
@files = `find $dir -name "*.jpg" -or -name "*.jpeg"
215えろす:02/04/01 23:33 ID:N9gtS9wO
>>214
実は最初find使っていたんですが、findはメモリ効率が悪いかなと思って、
使いませんでした。

open (IN, "filename");
@data = <IN>;
close (IN);
ってよく効率が悪いって言われてますよね。イマイチよく分かってないん
ですが。(w
216えろす:02/04/01 23:43 ID:N9gtS9wO
それと、こんなソフト発見しました。
http://ranchero.com/software/bigcat/

コンテクストメニューでアポースクリプト。中々良い感じです。
対象がFinderのファイルと、テキストだけっつーのが、アレですが。
今後に期待ですね。
217 milk四拾弐:02/04/02 17:15 ID:1HQRPVDh
>>213
えろすさんご苦労様です。AS_Downloaderいただきました。
ところが、関連スクリプトのインストーラーを実行すると「Can`t get ヌclass psxpネ of alias]という
エラーが出ます。インストーラーのスクリプトを見ると三行目が「set Cur_Path to ヌclass psxpネ of Cur_Path」
と文字化けしています。AS_Downloaderのスクリプトを見ると同様に「ヌclass psxpネ」という文字化けが見えます。
どこか私のやり方がおかしいのでしょうか?
218初心者200号:02/04/02 23:59 ID:P4IVyPb0
ども。Terminal初心者スレとどっちに書き込もうか迷ったんですが、話の流れ上こっちに行きます。
標準出力と標準エラーの区別ですが、K&Rの199ページを見たんですが、標準エラーに出されるメッセージは、
パイプラインや出力ファイルに消えずに、ユーザー端末に出力される。って感じに書いてあるんですが、
パイプラインなどに消えては困る物は標準エラーに出せば良いって事で良いのでしょうか?
エラーだからとか、そうじゃ無いとかにかかわらず?
ってことで、>>210のリンス先にFreeBSDなんかにはある-vのオプションを付け加えてみました。
オリジナルの通りにこれは標準出力に出してます。
219名称未設定:02/04/03 10:06 ID:M4Ua15IH
>>217
えろす氏じゃないけどオセッカイ

ヌclass psxpネ は POSIX path コマンドの生データです
何らかの理由で Standard Additions が読み込まれてない
もしくは、バージョンが古くてそのコマンドが用意されてないんじゃないかと
POSIX path は何時のバージョンからだっけ?
私のところ( Ver.1.81 )では問題なく動作しております
対策としては、再起動、バージョンアップ
最悪、再インストール
220 milk四拾弐:02/04/04 15:14 ID:ioQhvn+k
>>219
レスありがとうございます。

> POSIX path は何時のバージョンからだっけ?
> 私のところ( Ver.1.81 )では問題なく動作しております
POSIX pathはOSX10.12、AppleScript1.8からでした。
私のはOSX10.10、AppleScript1.7ですから作動しませんね。
田舎で未だにフレッツISDNさえ開通していない私の環境では、ダウンロードもできません。
10.2が出て、バージョンアップするまで待ってます。
221えろす:02/04/04 23:47 ID:lorVoBj8
>>219
サポどうもです。

>>220
んじゃ、必要なファイルだけ上げておきましたので、上手くいくか分かりませんが
これでやってみてください。あんまり良くない行為だと思うので、2日もしたらデリます。
説明も書いておいたけど、本物と交換してください。
上手くいかなかったらスンマソ。

http://homepage.mac.com/ero_s/stdosax.sit
222 milk四拾弐:02/04/06 12:48 ID:l60Xclt4
>>221
えろすさんありがとうございます。
いただきましたので、早速試してみます。
223へたれ:02/04/07 08:58 ID:X/OSpCls
連番展開スクリプトバージョンアップしました。複数ファイルを同時にDLします。
徹夜してなにやってるんだろって感じですが、ファイルがあっちゅうまに
落ちてきたので満足してます。一眠りしたらUsageと簡単なReadme書いてアップします。

>>218
遅レスですが、私は出力結果で処理を分けたい場合に、標準出力と標準エラーに分けて出力してます。
標準エラーもパイプで渡せますし、ファイルにも出力できます。
makeの際にエラーだけlog取っとく、ってのはよくやりますです。
ただパイプの役割から考えて、自分が意図していない出力を別のコマンドに渡しても
意味がないですけどね。で自分が意図していない出力ってのは、大体エラーメッセージになりますし。

標準出力、標準エラー共に何処にもリダイレクトしなければ、端末に表示されるように
なっているってだけです。
私は意図していない結果は及びUsageはエラーへ、それ以外は標準出力へ。
ユーザーに注意を促すプロンプトなんかもエラーへ出力する場合が多いかな。
(ファイル消しちゃっていい?とかです)

私なんかの意見よりも、Unix板で聞いてみるとより明解な答えが得られるかも。
224へたれ:02/04/08 05:26 ID:wdID1EO0
連番展開スクリプト、アップしてみました。
http://homepage.mac.com/hetare_go5go/FileSharing1.html

出来ることはこんなことです。
・連番ファイルの展開
iria用に書かれた連番URL(http://~~file[01-40].jpg)を展開可能。また連番ファイルの最後のURLを入力すると1番から(任意の番号を指定可能)ダウンロード。
・複数ファイルを同時ダウンロード
初期設定は10ファイルを同時に落としてきます。
・アーカイブのダウンロード
拡張子がlzh,zip,sit,hqx,bin,gz,etc..のファイルも落とせます。
・クリップボードとファイルからの読み込み
URLをコピー、スクリプトを実行でファイルを落とせます。またURLのリスト(書式は上記の形式)を書いたファイルを指定すれば、ファイルから読みこんでダウンロードを行います。

簡単なReadMe付けときまたので参考にしてください。
えろすさんのAS_Downloadからもそのまま実行できます。
(指定できないオプションはありますが、さして必要でもなかったりします)
225名称未設定:02/04/08 08:40 ID:IB7RQ43B

連番作成ならココが役に立つ話多いよ。
UNIX板「連番のH画像を一気にダウンロードする」
http://pc.2ch.net/test/read.cgi/unix/979106537/
226名称未設定:02/04/08 22:56 ID:7Ie76zy4
>>224
へたれさん、待ってました。さっそく使わせていただきました。
しかしうまく逝きません、ていうか逝かせ方を教えてください。
某エロサイトのおきまりパターンですが、
http://www.hoge.com/aaaa/hoge-000.jpghttp://www.hoge.com/aaaa/hoge-010.jpg
http://www.hoge.com/bbbb/hoge-011.jpghttp://www.hoge.com/bbbb/hoge-022.jpg
http://www.hoge.com/bbbb/hoge.rez

↑がうまく落ちてきません。
% segimg -n 000 http://www.hoge.com/aaaa/hoge-010.jpg -n 011 http://www.hoge.com/bbbb/hoge-022.jpg
とやったのですが、最初の11個しか落ちてきません。
rezファイルは後からでもいいのです。
何かやり方間違ってますか?

それ以外はすばらしく落ちてきます。最高です。
これぞ私の求めていたものです。
227初心者200号:02/04/09 22:50 ID:g9c4fGNP
>>223
ありがたいご返答、感謝します。
勉強になりました。Unix板はちと怖くて・・・
228へたれ:02/04/10 01:33 ID:lakbD7Of
>>226
やり方はそれで、ばっちりあってますよ。
某サイトで試してみたのですが、問題なく落ちてきました。
落ちてこないのは、そのサイトだけですか?
何処のサイトか教えてくれると嬉しかったりする (w

rez分割ってことは、もしかして拡張子が連番の数字だったりします?
そういったのは考慮してないので、エラー出ます。
そうでなければ、refererを設定してみて下さい。
後、-n 0 の要に、数字だけでいいですよ。数字の桁数はURLから読んでますので。

>>227
いえ、いえ。実は私もあんまりその辺りは深く考えていませんして・・。
UNIX板は普通に質問すれば、素っ気ないですが的確な答えが
すぐに返ってきますよ。
229へたれ:02/04/10 01:35 ID:lakbD7Of
それと拡張子が大文字だと多分落とせないのでパッチ。

46c46
< cat 1>&2 <<EOF
---
> cat <<EOF
95c95
< ext=`echo "$url" | awk -F"." '{print $NF}'`
---
> ext=`echo "$url" | awk -F"." '{print $NF}' | tr '[A-Z]' '[a-z]'`
102,103c102,103
< case `echo $ext|tr '[A-Z]' '[a-z]'` in
< zip|lzh|gz|bz2|tgz|tbz|tar|sit|bin|hqx|rez)
---
> case "$ext" in
> zip|lzh|gz|bz2|tgz|tbz|tar|sit|bin|hqx)
230226:02/04/10 03:11 ID:J75NjajM
>>228
すみません、自分のミスでした。
落ち着いてやってみると、すんなり落ちてきました。しかも爆速で。

サイトは人気老舗サイトです。
ttp://eromanko.com/ero/index3.htm
ttp://eromanko.com/modou/modou2.htm
231名称未設定:02/04/10 15:42 ID:qX96tVqB
rezの結合ってterminalからできますか?
232へたれ:02/04/14 03:43 ID:tXHDz8vi
御礼&保守上げ

>>230
遅くなったけど、素晴らしいサイトぬりがとう。
知らなかったよ〜、そのサイト。早速落としてます (w

>>231
偽装してない分割 ( rezなど )なら、大体いけます。
~/Deskop/sampleにfile01〜20.jpgがあるなら
% ls ~/Desktop/sample/file* | xargs cat >~/Desktop/sample/movie.mpg

こんな感じ。結合後のファイル名を元のファイル名と同じにしたいなら
別のディレクトリへリダイレクトしてくらはい。
233231:02/04/14 12:28 ID:74rF3nTA
>>232
ありがとうございます。

ウチの環境ではmovieは出来ましたが中身は失敗でした。
ファイルが破損してるか何かでしょうね。

出来るのが分かっただけでありがたいのでOKです
234初心者200号:02/04/16 22:59 ID:qBQc4sLA
osascriptなんて便利な物があったんですね。とりあえず、
ttp://freehome.kakiko.com/shoshinsha
の先のゴミ箱に移動するスクリプトにosascriptを使用してみました。
信頼性は高いかもしれませんが、遅いです。遅いです。
235名称未設定:02/04/21 05:20 ID:ZN2kGBF1
OS X だとリアルプレイヤー書類が白紙アイコンになりません?
まっ、うちだけかもしれませんが‥
アイコン復活のスクリプトつくったので同じ障害の人は使ってみて
ScriptMenu 専用です、Finder から選択後、実行
リアルプレイヤー書類(拡張子 "rm","ram")以外は無視するので
他のファイルと一緒に複数選択でも OK です
処理自体はファイルタイプとクリエータタイプを設定するだけのものです

tell application "Finder"
set file_list to selection
repeat with the_file in file_list
set the_ext to name extension of the_file
if the_ext is in {"rm", "ram"} then
set {creator type of the_file, file type of the_file} to {"PNst", "PNRA"}
end if
end repeat
end tell
236名称未設定:02/04/27 01:58 ID:CtP+l62h
定期アゲ
237名称未設定:02/04/27 02:50 ID:8j+ZUU/Z
>>232
xargsは不要だし、使わない方がいいよ。
ファイルが多すぎる場合xargsが2回に分けてしまう。
% cat file* > movie.mpg
でいい。
238えろす:02/04/27 18:35 ID:wTpEEWAl
すいません、しばらく海外に行ってて、対応遅れました。
seqimgウプグレードに伴い、AS_Downloderちょっとだけ直しました。
同時ダウンロード数を指定できるようにしただけです。
http://homepage.mac.com/ero_s/FileSharing1.html

新しいseqimg、イイですねー! なんか、かっちょえぇです。(w
俺も、もう少しまともなものを作らんとと思いました。
239えろす:02/05/02 20:34 ID:3lNwJoXg
おまえら、俺のGWの成果をみやがれっ!!
ってことで、AppleScript StudioでAS Downloaderを作ってみました。
初めてなんでソースぐちゃぐちゃだけど。

暇な人はぜひお試しアレ。
http://homepage.mac.com/ero_s/FileSharing1.html
240名称未設定:02/05/02 23:19 ID:4DLghDmn
>>239
じゃああと4日分のGWを更に使ってverUP期待してます(W
241名称未設定:02/05/03 14:27 ID:Z36Tz94L
会員制なんかのHPから画像をまとめてダウンロードしたいんですが、
curl使ってうまく落とす方法ありませんか?
curlの-uオプションで '-u 'userid:pass'と指定してみたんですが、
file not foundとなってしまいうまくいきません。
このままでは会費が、会費が、、、
お助けください
242えろす:02/05/03 21:42 ID:KtZTZQvN
>>241
とりあえず、file not foundではわからないから、-vオプションを
つけてやってみてください。エラー詳細を表示するオプション。
認証は色んな方法があるから、多分そこでコケてるとは思うんだけど。
243名称未設定:02/05/03 23:36 ID:Z36Tz94L
>> 242
すいません。いろいろやってるうちに
referの設定を一階層深くしてみたらできちゃいました。
スレ汚してスマソ
244名称未設定:02/05/04 10:12 ID:0U5dA3Py
あのー、起動ディスクの切り替えをするスクリプトは、OS Xでは出来ないのでしょうか?
245名称未設定:02/05/04 12:14 ID:dxejWx2P
As_downloader使わせてもらったんですが便利ですね。

ちょっと質問なんですがファイル名が10b.jpg
みたいに.jpgの前に英文字が付くとエラーが出ます。
どうやって回避したらいいんでしょうか?
246へたれ:02/05/04 20:06 ID:DQgq5z1Q
久々です (w

>>244
できますですよ。ちょっと長いですが、どうぞ。 OS X、OS 9のパスはご自分の環境に
合わせて書き換えておいて下さい。あとOS 9のシステムフォルダをSystem Folderにしといた
ほうがいいかもしれません。

set passwdStr to ""
display dialog "パスワードを入力" default answer passwdStr buttons {"Ok", "Cancel"} default button 1
set passwdStr to text returned of result as string
display dialog "起動IOSを選んで下さい" buttons {"OS X sub", "OS 9", "Cancel"}
set startDisk to button returned of result
if startDisk is "OS X sub" then
try
do shell script "/usr/sbin/bless -folder '/Volumes/OSXsub/System/Library/CoreServices' -setOF" password passwdStr with administrator privileges
end try
else if startDisk is "OS 9" then
try
do shell script "/usr/sbin/bless -folder9 '/Volumes/OS9HDD/System Folder' -setOF" password passwdStr with administrator privileges
end try
end if
tell application Finder
activate
display dialog "今すぐ再起動しますか?" buttons {"Yes", "No"}
set restartFlag to button returned of result
if restartFlag is "Yes" then
restart
else
return
end if
end tell
247へたれ:02/05/04 20:29 ID:DQgq5z1Q
>>245
そりは簡単連番DLの機能を使ってますか?
もしそうなら、script自体がそういった形式のファイルに対応してないです。

んでAS_Downloader(ASS)が私んとこでは使えない(;´Д`)...
起動 → オムニは入っていないのでキャンセル
→ windowは現れるが、メニューに何も文字がでない・・
こんな状態です。OSXは10.1.4使ってます。

しかしアイコンが可愛い‥‥
248えろす:02/05/04 20:56 ID:ybeqwujv
>>247
そぉりぃ〜〜〜〜!>へたれさん。
やっぱOmni起動時に確認するんだ。大丈夫だろうと思って入れちゃいました。

今、修正版を作ってるんですが、310行目あたりにある、else if と tell app "Omni"
んとこをコメントアウトすればいけると思います。
今晩中に訂正版出しますです。
249244:02/05/04 23:05 ID:vD8gqQAc
>>246
へたれさん、どうもありがとうございました! 
ひんぱんに9に切り替える必要があったので、助かりました。 
250えろす:02/05/04 23:59 ID:ybeqwujv
AS Downloaderアプグレードしました。
クリップボードからURL抽出のスクリプトを直しました。

・拡張子指定
・同時ダウンロード(seqimgみたいなやつ)
・再帰回収(HTMLファイルだったらその先のファイルも)
・Omniは使えないようにした。

単体でもそれなりに使えるレベルになったと思うので、お試しアレ。
インストールは古いファイルを書き換えるようにしてください。

http://homepage.mac.com/ero_s/FileSharing1.html
251えろす:02/05/05 02:30 ID:3fakuzNN
すいません、すんごいつまらないミスをしてました。訂正したので、3時間以内に
ダウンロードした人は差し替えてください。ごめんちゃい(;´Д`)...
252名称未設定:02/05/05 10:24 ID:EBRp4VbW
えろすさん、AS_D使わせてもらってます。イイ!こんなの欲しかったッス。

ところでOmni(4.1 beta 4)でAS_Dかけると、
「ブラウザからURLを取得できません」ってエラー出ちゃうんです。俺だけ?
IE,ICabでは問題ないみたいいですが…
Omniマンセーなんで使えるようになると嬉しいデス。
253えろす:02/05/05 23:45 ID:+hd6JQed
>>252
今のバージョンではOmni使えないようにしてあります。Omniの用語が特別なんで。
使いたい場合はSourceフォルダの中のプロジェクトを開いて、エディタでスクリプト
の320行あたりにあるコメントをはずしてビルドするばよろし。

でも面倒くさいよね。そのうち、何とかします。スクリプトオブジェクトについて
もうちょっと勉強すれば出来るとは思うんだけど。
254へたれ:02/05/07 01:27 ID:tjv0KDNS
AS_Downloader0.92、落としてみたのですが、
やっぱりメニューに文字が出ませんでした。ソースからビルドしてもエラーが‥‥
で、>>248で書いてるように、インストールしていない
browser(mozilla, netscape)の部分をコメントアウトすれば、オッケーでした。

で、AS_Dowonloader、いいですね。画面が小さいのもいいし、
Edit で簡単に再設定できるってのも便利です。
ソースついてるので参考にもなります。私もASS勉強してみよ。
255名称未設定:02/05/08 19:26 ID:mKXvOdUz
>>250
使ってみようと思って過去ログ読んでScriptmenuに登録したんですが
なんか上手くいかないんですけど >AS Downloader

.appって事でフォルダになって中身とiconが見えてしまうだけです。
設定間違ってますかね?
256えろす:02/05/08 21:23 ID:PXP8heWr
AS_Downloader0.93になりました。以前のバージョン使ってくれた人は
「絶対読んで」って奴を読んでください。
http://homepage.mac.com/ero_s/FileSharing1.html

>>252さん、Omni使えるようにしました。

>>255さん
過去ログ読まんで、ReadMe読んで(w
以前はScriptmenuに登録するスクリプトだったんですが、
最近アプリにしたんで、ダブルクリックで起動します。

>>へたれさん
今回はブラウザ入れてなくても、逝けると思うんですが如何でしょうか?
257255:02/05/08 21:57 ID:dLko698p
すいません 形式が変わったんですね
添付マニュアル通りにやり直しました
ですが、どうも上手くいきません

まず起動時したパネルのプルダウンメニューには
ショートカットは見えるんですがコマンドが見えません

ブラウザにIEを指定しようとすると
AppleScript Error
変数"Browser_Name"が定義されていません(-2753) 
がでます

気になったのでpreferenceを捨てようとしたのですが
指定場所に見あたりませんでした

OSは10.1.4です
258名称未設定:02/05/08 22:08 ID:1AvwMK8K
うちでも0.93は起動時の初期化に失敗するようです。
どうもasdown.prefの書き出しができてないようなので
手書きしてみたんですが、読み込んでくれません。
259えろす:02/05/08 22:35 ID:PXP8heWr
うひゃぁ、すいませんです。

そういや俺も一度、初期化に失敗したんですが、デベロッパツール
で再ビルドしてら動いたって事があったんです。たぶん、一度動く
と後は大丈夫っぽいです。Aplil2002DevTool入れてるんなら再ビルド
してみてください。一応ibook,iMacFP,Yosemiteで動作確認はとれてます。

ひょっとして本物の初期設定かも、asdown.plistも捨ててみてください。

念のため、ファイルシェアリングにasdown.pref入れときましたが、
これは関係ないっぽいです。お手数おかけします。
260えろす:02/05/08 23:03 ID:PXP8heWr
>>257-258さん
本当に申し分けありませんです。ミス発見しました。
訂正しましたが、なぜか再現性がなかったので、はっきりしない
んですが、恐らく逝けるはずです。0.94をダウンロードしてみてください。

いつも、こんなのでスレ汚してすいません。
261257:02/05/09 00:05 ID:ODmYtuj9
新版入れて見ましたが>>257と変わらずでした。

>asdown.plist
ってドコにあるんでしょ?
preferenceの中には見あたりませんでしたが。

>devtool
ごめんなさい、さすがに入れてません。
262えろす:02/05/09 00:21 ID:nAtB/yG3
>>261
検証ありがとうございます。なぜなんだぁぁぁぁ!
最後の手段てことで、ハンドラの呼び出しイベントを変えてみました。
これで駄目なら、全面的に書き直します。>>261さん、まだ嫌になって
なかったら、お試しくださいです。

0.95です。asdown.plistってのは昔のバージョンでは作ってたみたい
です。無かったら構いません。~/Library/Preferences/に作ります。
263261=257:02/05/09 00:35 ID:7yawW2MB
>>261-262
>まだ嫌になってなかったら、お試しくださいです。
お気になさらず(笑)

今おとして試しました。
今度は問題なくプルダウンも表示されましたし
>>257に書いたエラーはどれも出ませんでした。

ただ、
実行にTerminalが開いてダウンロードし始めたのですが
ファイルが130個中の40個目ほどで

CURL: job table full [7]

というエラーがTerminalに出て止まりました。


一応今晩はココ迄の報告とさせて下さい。
(朝早いもんで寝ます。申し訳ない。)

また明日以降よろしくおねがいしますネ
ノンビリ検証してくださいまし
264261=257:02/05/09 00:56 ID:7yawW2MB
連続投稿失礼

あと、簡単ダウンを利用したんですが
ファイルの落ち先が/User(自分)直下なんですけど

(Documents,Lib,Moviesなんかが有るところです)

これってdocumentの下に収まって欲しい時なんかは
どこで設定するべきなのでしょうか??
265258:02/05/09 02:27 ID:HrUwO0Sk
0.95うちでもOKっす。感謝感激。
>>264
簡単ダウンを選んだ後、Editでいじれると思いますよ。
266えろす:02/05/09 20:46 ID:E7tTuPDG
>>263-264
どうもでした。動いて良かったです。curlのエラーは、curlのエラーなんで
特に気にしないでください。Terminalが止まるってー事は無いと思われ。
処理待ちとかかしらん。嫌になったらcontrol+cで。
基本的にAS_Downloaderはコマンド発射ソフトなんで、発車後のエラーは
知ちゃっこったないの方向でお願いします。でも、URL抽出ってなんか変なマッチす
るんだよね。そのうち何とかします。

今日は酔っぱらっちゃったので、ウプグレードはなしです。つーか、一人でスレ違いの
方向に突っ走ってるような気がしますが、スクリプトの質問とか発表とかキボーンです。
つーか、あれだね、アポーjのAppleScriptのページって未だにQuickTime4とか書いて
るんだよね。ムカツク中華、あきれる中華。んでもって、ASS面白いけどバギーです
わ。わけわかんないエラーばっかし。
267えろす:02/05/09 20:47 ID:E7tTuPDG
>>263-265のつもりでした。265さんにも感謝ですです。メンゴね。
268名称未設定:02/05/10 08:36 ID:ApoMCh0l
>>266

いえTermial止まって、次の命令待ち?の
通常状態になっていまいます。

control+cで終わるとかでなく、処理自体が終了しています
269えろす:02/05/12 17:41 ID:5JNHaMWf
>>268
レス遅くてごめんです。 CURL: job table full [7] ってーことは、俺も詳しくは
わからんのだけど、jobがいっぱいだよってことだと思うから、同時ダウンロード
数を減らせば良いと思います。メモリが少ないのかしらん?再現性はありますか?
再現性があるなら、リストを教えてもらえれば、こっちで検証しますけど。
270名称未設定:02/05/12 18:47 ID:HQRSww+Y
>>269
メモリは700MBほどです。 OSは10.1.4
同時ダウンロードは13程で止まってたと思います。

どこかダウン指定してもらえば、そこを同じようにやってみますが...
271えろす:02/05/12 20:56 ID:X0zegPQ8
>>270
そもそも、「URL抽出ダウンロード」の話だよね。
半角文字列板でもいって、適当なスレを適当な範囲だけコピーして、
実行してみてください。指定拡張子はjpgで、抽出先はClipboardにして。
終わるとdownload completeって表示されます。たぶん。
古いスレだと、画像が無い事が多いので、新しいところで試してください。
272へたれ:02/05/12 21:53 ID:Weo092tC
やっと大福の設定が終わった‥‥
>>270-271
CURLって大文字で出てるので「連番簡単DL」のことかな
「job table full」と出るのは、おそらくシェルの制限です。←はperlだと問題ないのかな。
back ground jobが40を超えると悲鳴をあげます。
(同時DL数を41以上にしてみると分かると思います)
DL数を13程度にしていても、1つ1つのDLが早く終わって
「待つ」過程が無いとjob tableがクリアされません。
なのでDL数は5〜10の間が無難かと思います。
それとseqimg、ちょこっと修正したの上げときました。良かったらどうぞ
http://homepage.mac.com/hetare_go5go/FileSharing1.html

新しいAS_Down、全然問題ないです。
それどころか、いつの間にかショートカットキーが設定されてる!
いい、かなりいい。任意のコマンドを登録できるのが使いやすさを倍増させてます。
とりあえずlogin項目に入りました。
273へたれ:02/05/12 22:01 ID:Weo092tC
それとこんなのを見つけました。
sh や perl scriptを簡単にドロップレットにするアプリ
http://www.apple.com/downloads/macosx/unix_apps_utilities/dropscript.html

テストで、適当に作ったのを↑でドロップレットに変えてみたけど、
とりあえずは問題出ませんでした。何気なく(アイコン以外は)いいアプリかも。
274270:02/05/12 22:08 ID:svUeU5Cn
>>271
そうですね、URL抽出です。

とりあえず ttp:// 〜 /images[002-044].jpg の方法で
クリップボード抽出指定にしてます。(そもここが間違ってますか?)

今、半角板でtestしたんですが44枚問題なく落ちてきて
download completeも出ました。

取り敢えず、エラーが再現したらまた書きます。
その時(失敗した時)にURL貼ったらいいんでしょうか?

お騒がせしました。>えろすさん
275270:02/05/12 22:10 ID:svUeU5Cn
ごめんなさい
URL抽出ではなく連番簡単のほうを利用しています。
276270:02/05/12 22:52 ID:J9K1EfEE
連続スレ汚しすいません
書いて実験してる内にへたれさんが書き込んで下さってたようで
申し訳ありませんでした。

簡単の方では2個づつ落としに減らせば問題なく落ちてきました。
URL抽出の方でも、違う板いくつか落としてみましたが問題ありませんでした。
(指定はimg[001-066].jpg など)

perlは分からないんですが、当面このまま落ち数を減らして使ってみます
ありがとうございました
277えろす:02/05/12 23:49 ID:A1i3Nv3/
>>272
どーもです。へたれさんに褒めてもらえると作った甲斐がありましたです。
perlでjobの制御ですが、url_maker.plでは子プロセスが作れなかったらdieするように
エラートラップしてます。40個ぐらいで、エラーが出たように記憶してます。

>>274-276
連番の方でしたか。俺の名前の付け方にセンスがないので、混乱させてしまったようで
すいませんです。とりあえず、上手くいって良かったです。連番の方は
seqimg-ReadMeも参照してください。

それとseqimgアプグレードに付き、AS Downloader0.96になりました。
ReadMeの書き換えとすこしデバックしました。Editもコマンド+Eで開けます。
278えろす:02/05/12 23:50 ID:A1i3Nv3/
279へたれ:02/05/15 21:13 ID:tfMI+H/N
>>277
perlでも同じみたいっすね。shだとどうやって制御するんだろう‥。
それとAS_Downloader、iCabからだとURLを所得出来ませんでした。
IEと同じ方法でURLをとることが出来たので、
else if Current_Browser is "iCab" then
tell application "iCab" to set Cur_URL to first item of (GetWindowInfo -1)

↑をIEの下に加えてビルドで、iCabも上手くいきました。

で質問があるんですが、Apple ScriptでFinderを呼び出してから
restart, shut down,sleepが働きません。
「リソースがありません」って怒られてしまいます。
用語説明だとLegacy suiteと出ているので、サポートされてないのかな?
ただ古いiMacのOSX10.1.4(10.1からupdate)だといけるんですよね‥‥。
どうなんでしょう。
環境は大福iMac 10.1.4 DevTools 4月号でつ。
280えろす:02/05/15 22:09 ID:aoPJVZJy
>>279
バグレポどうもです。iCab,Mozilla,Netscape全滅っぽです。
立ち上がるもんだから、とれるもんだと思っちゃいました。直します。

あと、リソースがないってーのは、本当にリソースが見つからないという
意味だと思います。日本語版finderのリソースが、ヘボイってことです。
英語版Finderにしたら上手く逝きました。iMacでなぜ逝けたかは、わかり
ませんが、とりあえずTell Us攻撃ですな(w
281へたれ:02/05/15 23:18 ID:tfMI+H/N
>>280
早速のレス、どうもです。
Finderの言語設定はEnglishにしていたので、
おかしいなと思って、いろいろやってみました。
結果Script Editorの言語設定が英語なら、英語のリソースを読みにいくようです。

% defaults write com.apple.scripteditor "AppleLanguages" '(English)'

なんだか‥‥、仕様なんですかね〜。Tell Us久しぶりにしてきました
ジャガーでは直ってますように‥‥。
282名称未設定:02/05/16 21:55 ID:BxPE5t81
質問なんですが、デフォルトブラウザの変更って
スクリプトかコマンドラインから、簡単に出来ないもんでしょうか?
defaults コマンドで出来るかと思ったんですけど、
どのファイルで設定されてるか、分からなくて‥‥。
com.apple.internetconfig だと思うんですけど、
中のデータの記述がこれまた意味分からないし。

よろしくお願いします。
283282:02/05/18 12:57 ID:UYPakjHh
ど、どなたか御存じの方いませんでしょうか‥
284えろす:02/05/18 17:32 ID:XsSidNNQ
>>282
たしかにcom.apple.internetconfig っぽいんだけど、コレよくわからないですね。
変更して差分取ってみたけど、なぜかDownloadFolderが代わってるし。
んで、色々検索したら/System/Library/PreferencePanes/Internet.prefPane/Contents/Resources/English.lproj/DefaultHelperApps.plist
ココをかえるとブラウザ変更のポップアップに表示するブラウザが代わるみたいです。

http://www.resexcellence.com/index_archive/index_04-01b.shtml
ここで見つけた。古いんでパスは違います。

しかしながら、ポップアップの表示をかえるとデフォルトブラウザが代わるのかは
わからんです。そのうえこれをスクリプトなりで変更する方法が思いつかない。
ファイル交換だけじゃ上手く逝かないような気がするし・・。役立たずでスマソ。
285名称未設定:02/05/18 18:05 ID:D77oVsWU
ちょっとスレ違いな気もするんでsageで。

以前AppleScriptを開発しやすくするキットが
Appleから発売されると聞いたんですが利用されてる方おられます?
(まだ、発売されてなかったらすいません)

実際はどんな感じなのでしょうか?
シロートでも利用できる範囲でScript作成を楽にしてくれるものなのですか?
それとも開発者向けにScriptEditorを高度にしたものですか?

個人的にはScriptEditorだけだと難しいなあと感じてるレベルなので。
286名称未設定:02/05/18 22:55 ID:AijhB/HF
>>285
http://www.apple.com/applescript/macosx/ascript_studio/
金取られる売り物ではないような。デベツールの一部っしょ。
開発者向け。
This collection is accesible by members from the Apple Developer Website as either a free download
287282:02/05/19 10:58 ID:lF5q0JEV
>>284
レス、ありがとうございます。そこにリンク先に書かれている
方法では、インターネットパネルに直にブラウザ名が表示されるんですね。
その方法も知らなかったで、便利になりました。
com.apple.internetconfigについて、自分でも調べてみたのですが、
ADCにこういったサイトが用意されてました。carbonのAPIなので
書式が違うみたいですね。これから勉強してきます。
http://developer.apple.com/techpubs/macosx/Carbon/networkcomm/InternetConfig/Internet_Config/index.html

>>285
AppleScript Studioのことですよね。Developer Toolsをインストールする必要があります。
Scriptの作成が楽になると言うより、簡単にGUIを作ることが出来る、
という感じでしょうか。
えろすさんのAS_DownloaderもASStudioで作られてますよ。
ソースも付いているので勉強にもなります。私はまだチュートリアルでお勉強中です。がんばろ。
288名称未設定:02/05/20 16:21 ID:7mzElN2Q
tell application "QuickTime Player"
--なんか処理する
end tell

とやったとき、クラシックのQT Playerが立ち上がってしまうんですが、
OS Xのものを使いたい場合はどうすればいいのでしょうか?
289名称未設定:02/05/20 18:51 ID:zJoyybOB
>>288
試したんですが、OS XのQuick Timeが立ち上がりました。
直るかどうか分かりませんが、update_pribindingをするか
~/Library/Preferencesにある「LSApplications、LSClaimedTypes、LSSchemes」の
3ファイルを削除して再起動してみるってのはどうでしょうか?
後者はOS 9デスクトップの再構築にあたるらしいです。

290えろす:02/05/20 23:27 ID:gDUSLW3B
>>288
アプリケーション形式だったらインスペクタでClassic環境で開くというチェックが
ありますが、これはどちらかというと逆の話ですね。チェックしてませんよね?


あと、AS Downloaderをウプグレードしました。0.97です。まだバグがいっぱいですが、
ブラウザのところや、その他もろもろデバッグしました。
http://homepage.mac.com/ero_s/FileSharing1.html

ところで、家の環境ではwgetコマンドが、AppleScriptのdo shell commandコマンド
で、フルパスじゃなきゃ動かないようになっちゃたんですが、解決方法ってあるで
しょうか?whichは通るし、curlはdo shell commandコマンド通るんですけど。
どなたかご存知でしたら教えてください。
291名称未設定:02/05/21 00:29 ID:06IBJqU0
>>288
--
tell app "QT" to activate
--
と書いて構文確認すると、"QT"はどこにありますか?と聞いてくるので、
Mac OS XのQuickTime Playerを選択してくだされ。
すると自動的に、
--
tell application "QuickTime Player" to activate
--
と変換され、関連付けが完了します。
以降は普通に、app "QuickTime Player"と言えば、
Mac OS X用のQuickTime Playerを指す事になります。
292よっぱらいへたれ:02/05/21 01:30 ID:dijYd76S
>>290
do shell scriptから呼び出されたshell(おそらく/bin/sh)は
寂しいことに設定されている環境変数を引き継いでくれないっす。
なので設定されているPATHは極めて少ないです。

display dialog (do shell script "echo $PATH") --で確認できます

またargv[0]がなんなのかよく分からんので、/etc/zshenvに
PATHを書いても見てくれませんでした。
力技だけんども、scriptの中で強引にPATHを設定してやればいけました。

set cmd_str to "PATH=$PATH:/sw/bin; export PATH; " -- wgetは/sw/bin/wgetでつ
do shell script cmd_str & "wget http://www.apple.co.jp/macosx/images/jaguarscreen.jpg"
293288:02/05/21 07:42 ID:fDvPZBMA
ありがとうございます。
>>291さんの方法で無事にOS XのQTが使えるようになりました。
294288:02/05/21 07:56 ID:fDvPZBMA
と思ったら、これが効いているのはOS XのQTが立ち上がっている間だけですね。
終了させてから、起動するとまたクラシックのQTが上がろうとしてきます。。。

正直、>>289さんの「update_pribinding」と「インスペクタでClassic環境で開くというチェック」
が何のことやら解りません。。。この2点について、もうすこし詳しく教えて抱けないでしょうか
295291:02/05/21 09:33 ID:134pw+Hb
>>294
スマソ効果なかったね。混乱させちゃった。
289氏の仰る3つの初期設定を捨てると解決すると思います。

update_pribindingはTerminalで打ち込みます。最適化です。
インスペクタで表示とは、アプリケーション保存したスクリプトを情報見るすると
チェックする項目があります。
が、たぶんScriptEditer上からでもClassic用QTが立ち上がってると思うので、
やはり3つの初期設定を捨ててみてくだされ。

すまそ、いらぬことを書きますた。
296291:02/05/21 12:24 ID:134pw+Hb
スマソ綴り間違ってるね。
Terminalで打ってreturnし、passを入力。

% sudo update_prebinding -root /

実は漏れも同じ症状に陥っちゃってるんです。
でもこれ効果無かったっす。3つの初期設定を捨てるのも効果なかった。
( ´Д⊂ヽ ウワァァァン

オーナーの違いか?と思ったが他にも9版とX版でオーナーが違う(9版は自分、X版はシステム)
アプリでもIEやiTunesはちゃんとMac OS X版が反応するのにね、、、
なんかハマった。修正日や作成日でも無いみたい。
297名称未設定:02/05/21 13:31 ID:/Wbk5d1x
>>292
~/.MacOSX/environment.plistは?
298291:02/05/21 18:44 ID:134pw+Hb
もうだめぽ
どうやっても直らないってか、3つのファイルを捨てると一時的には直るんだけど、
ClassicのQTを1回でも起動するとまたなっちゃう。
しょーがないので、ClassicのQT Playerの名前を変えますた。
QuickTime Player4.app(classic)
QuickTime Player5.app(classic)
QuickTime Player(Mac OS X)

とすると、それぞれの名前で逝けますた。
疲れた。
299へたれ:02/05/21 21:31 ID:jdJ0GZXO
>>297
まさにそれでした!googleで調べたらADCのサイトが
ひっかかってきました。全てのプロセスで参照する環境変数
は~/.MacOSX/environment.plistに書かなきゃいけないんすね。
http://developer.apple.com/qa/qa2001/qa1067.html

>>298
私も以前iCabで同じようなことになったんですが、
ムカついてOSをクリーンインストールしました (w
Classic版のQuick TimeをOS X版のパッケージの中に
放り込んでみてはどうでしょう?
QuickTime Player.app/Contents/MacOSClassic/QuickTime Player
|_ ここにClassicのエイリアス

ただOS 9で起動した時、プラグイン等がどうなるかが不明ですが‥‥。
300名称未設定:02/05/21 22:11 ID:/Wbk5d1x
>>299
environment.plistはリモートログインしたときとかは
参照されないんであまりあてにしないほうがいいと思う。
オレはCarbon Emacsで必要なのしか書いてないなぁ。
301えろす:02/05/21 23:33 ID:J2TSAr+Y
>>292 >>297
レスどうもです。ちょっと試してみましたが、上手く逝きましたです。
>>292の方法ならスクリプトに直接書けますね。勉強になりました。
次のバージョンでは使えるようにしてみます。

Classicで立ち上がる問題は皆苦労してるな(w
俺はDropStuffでClassicアプリを圧縮してました・・。
名前を変えるってなかなかスマートですね。
302名称未設定:02/05/22 07:28 ID:j6QanTmB
set FileName to (choose file with prompt "ファイルを選択してください:")

このようにやったとき、フルパスでファイル名を取得できますが、
FileNameからファイル名とパスを切り離して、別の変数に記憶するには
どうしたらいいですか。
303名称未設定:02/05/22 11:35 ID:PKzUzbgs
>>302
いまいち書いてることが理解できてるか自信ないが
フルパスからファイル名を取るには
":" ( コロン ) で分割する方法が良いかと

set FileName to (choose file with prompt "ファイルを選択してください:")
get_file_name(FileName as string)

on get_file_name(this_path)
set old_delim to AppleScript's text item delimiters
set AppleScript's text item delimiters to ":"
set the item_list to every text item of this_path
set AppleScript's text item delimiters to old_delim
return last item of item_list
end get_file_name
304302:02/05/22 12:37 ID:j6QanTmB
すいません。ちょっと質問を間違えてしまいました。ホント、申し訳ないです。

やりたいのは set FileName to (choose file with prompt "ファイルを選択してください:")
でフルパスファイル名を取得して、例えば yeah:wow:hoge.mov というものだったとします。
これを yeah:wow:hoge_new.mov というように拡張子の前に _new を入れるには
どうしたらいいでしょうか。

なんか全然違う質問してしまってすいませんでした。やりたいのは↑です。
305302:02/05/22 12:40 ID:j6QanTmB
追記

取得したファイルの拡張子が yeah:wow:hoge.txt のように違っていても、
yeah:wow:hoge_new.mov のように _new.mov で終わるようにしたいです。

これは難しいでしょうか。。。
306名称未設定:02/05/22 17:09 ID:ijUCzmv1
>>305
念の為、バックアップをとってる。
問題なければ cp -p の行を削除してちょ。

#!/bin/sh

OLDNAME=
ADDNAME=_new.mov

for i in "$@";do
cp -p "$i" "${i}.bak"
OLDNAME="$( basename $i .${i##*.})"
mv "$i" $(dirname "$i")/"${OLDNAME}"${ADDNAME}
done
exit
307306:02/05/22 17:14 ID:ijUCzmv1
リソースフォーク付きファイルを扱うことを考えたら
こっちの方がいいかも

#!/bin/sh

OLDNAME=
ADDNAME=_new.mov

for i in "$@";do
OLDNAME="$( basename $i .${i##*.})"
ditto -rsrc "$i" $(dirname "$i")/"${OLDNAME}"${ADDNAME}
done
exit
308306:02/05/22 17:58 ID:j6QanTmB
教えて頂いて大変申し訳ないんですが、アップルスクリプトで
やりたかったのです。すいません。。。

ちなみにそのスクリプトは何でしょうか? parlというやつですか?
309横レス:02/05/22 19:52 ID:KTKzX1T0
一行目の最後が
shなのはShell
perlなのはPerl
310名称未設定:02/05/22 19:58 ID:Tprkp0HV
>>308
解った、QTの別名保存をやりたいから選択したソースファイルが入っている
フォルダと同じところに、実行当時は存在しないファイルの参照が欲しいという訳ですな。
で、ソースが.mp3であったり.movであったりするので、全部.movにしたいと。
ついでにhoge_nwe.monにしたいと。
>>303氏のやつをちょこっと変えるだけで逝けるべ

set FileName to (choose file with prompt "ファイルを選択してください:")
get_file_name(FileName as string)

on get_file_name(this_path)
set old_delim to AppleScript's text item delimiters
set AppleScript's text item delimiters to ":"
set PathList to text items 1 thru -2 of this_path
set First_Name to last text item of this_path
set PathList to (PathList as text) & ":"
set AppleScript's text item delimiters to "."
set NewName to (first text item of First_Name) & "_new.mov"
set AppleScript's text item delimiters to old_delim
set Reference_Save_File to PathList & NewName
return Reference_Save_File
end get_file_name

このままだと、ただの文字列なので参照にする必要があると思う。
QTでの書き方がよーわからんけど、やってみてくれ。
311306=308:02/05/23 07:31 ID:w6vvHp27
>>310
やりたいことは正にそれです。
しかし、アップルスクリプト自体まだ1週間もやっていないので
正直、理解できません。。。とりあえず、何も考えずにくっつけてみましたが
やっぱりなんかわからないエラーがでます。
いろいろなことの力を借りてようやくここまでたどり着きました。後これだけで完成です。

tell application "QuickTime Player"
launch
activate

repeat
stop every movie
close every movie saving no

open (choose file with prompt "拡大縮小して追加するファイルを選択してください:")
tell movie 1
select all
copy
end tell

set FileName to (choose file with prompt "元になるファイルを選択してください:")
open FileName
tell movie 1
add with scaled
select none
get_file_name(FileName as string)
save in file ((FileName & "_new") as string) as self contained
end tell

display dialog "処理を続けますか?" buttons {"はい", "いいえ"} default button 1
set User_Answer to button returned of result
if User_Answer is "いいえ" then
exit repeat
end if
end repeat
quit saving no
end tell

on get_file_name(this_path)
set old_delim to AppleScript's text item delimiters
set AppleScript's text item delimiters to ":"
set PathList to text items 1 thru -2 of this_path
set First_Name to last text item of this_path
set PathList to (PathList as text) & ":"
set AppleScript's text item delimiters to "."
set NewName to (first text item of First_Name) & "_new.mov"
set AppleScript's text item delimiters to old_delim
set Reference_Save_File to PathList & NewName
return Reference_Save_File
end get_file_name
312名称未設定:02/05/23 07:35 ID:w6vvHp27
>>291
色々試して頂いてありがとうございます。
私もやってみましたが、同じ症状になりました。。。

もうぼかぁわからんわぁ。。。。。。
313名称未設定:02/05/23 12:39 ID:9Z6WpkEk
>>311
まっ、いろいろやり方はあるだろうけど
Finder に tell してみたらどうですか
やっぱりいまいちご希望が理解できてない気もするが‥
クイックタイムの部分のエラーは考えてませんよ


--end tell 前の8行を以下の7行と入れ替え

set FileName to (choose file with prompt "元になるファイルを選択してください:")
open FileName
tell movie 1
add with scaled
select none
save in file (my save_ref(FileName)) as self contained
end tell

--サブルーチンは以下の二つ、くっつけといてください

on save_ref(this_file)
tell application "Finder"
set container_path to (container of this_file) as text
set old_name to name of this_file
set new_name to my make_new_name(old_name, "_new.mov")
return (container_path & new_name)
end tell
end save_ref

on make_new_name(file_name, add_char)
set old_delim to AppleScript's text item delimiters
set AppleScript's text item delimiters to "."
set item_list to text items 1 thru -2 of file_name
set file_name to (item_list as string) & add_char
set AppleScript's text item delimiters to old_delim
return file_name
end make_new_name
314311:02/05/23 13:46 ID:w6vvHp27
おー、すごい!! できましたよ。正にコレですよ。
やさしいひとがいるもんですね。ありがとうございます。
315311:02/05/23 13:51 ID:w6vvHp27
某スレの人もきっと感謝しています。
316名称未設定:02/05/26 11:33 ID:K40cCkIl
質問です。
ttp://www.interclubsex.com/tartar/1kog/10/ytiinb.html
のページから画像を落とそうとして

簡単連番
ttp://www.interclubsex.com/tartar/1kog/10/28.jpg

URL抽出をやったんですがどちらも駄目でした
ttp://www.interclubsex.com/tartar/1kog/10/[01-28].jpg

何かやり方が間違ってるでしょうか?
317えろす:02/05/26 20:15 ID:hkymd95R
>>316
そのページはrefererが必要っぽいです。refererに付いては、一言では
説明できないんで、検索してください。

だいたいJpeg一階層(wget)でいけないページは、refererが必要だったりします。

なので、ユーザ定義連番をEditしてreferer付きで実行してください。
んで、ダイアログでURLを入れて、実行・・・と思ったら-rの前にスペース
が無いバグを発見。修正しました。0.98です。

http://homepage.mac.com/ero_s/FileSharing1.html
318名称未設定:02/05/29 03:10 ID:ixxmu/dq
ぜんぜん知らなかったんですが、
AppleScript Studioってかなり本格的なアプリとかもできるそうですね。
使ってる方いますか?
319名称未設定:02/05/30 00:23 ID:Z+m6E1TN
>>318
ADCのオンライン会員になって、さっきダウンロードしました。
200MB以上あった。これから試してみるっす。
専用スレとかあってもいいと思うがなあ。誰か作っとくれ。

↓こんなページがあった。
http://www.oomori.com/ass/
320名称未設定:02/05/30 15:40 ID:xciEBB78
321名称未設定:02/06/04 23:43 ID:u3oCqry4
過去レスくらい読めよとageとく。
322名称未設定:02/06/05 22:05 ID:Dox+rzvg
>えろすさん

AS-downloaderいただいたんですが
AppleScriptErrorで起動したあとも大きなエラー画面が出てきます。
終了時もcmd11が有りませんとか言ってるようです。
今日10.1.5を入れたんですが結局変わりませんでした。
何かAppleScriptを入れないといけないのでしょうか?
323えろす:02/06/06 00:00 ID:6BfikJwO
>>322
エラーは多分初期設定の読み込みに失敗しているっぽいので、
~/Library/Prefernces/asdown.prefを捨ててください。plistじゃないよ。
↑ホームフォルダの意味

324322:02/06/06 02:04 ID:NYuRjikx
>>323 えろすさん

無事起動できました! ありがとうございました。
使わせていただきます。
325名称未設定:02/06/11 16:05 ID:2GLGj0nm
As_Downloaderでサイトに有る画像を取ってこようと思って
URL抽出してダウンロードを使ったんですが
00-40個のファイルがあったとして、途中何個か抜けてしまう事があります。

対処法が分からなかったんで3個同時落としから
1個のみ落とすようにしてもやはりポツポツ抜けてしまいます。
どのようにしたらよいのでしょうか?

あと、URL抽出を同時に幾つか並行させようとしては
いけないような印象を持ったんですが、やはりそうなのでしょうか?
(ex.サイトAから40個、サイトBから40個というのをほぼ同時に
スタートさせようとすると、激しく中抜けしていまいます。)
326325:02/06/11 22:15 ID:FBhp8Zp6
すいません 補足です。

以前のバージョンでスクリプトメニューから実行するものに
入れ替えてみたんですが、こちらのURL抽出だと抜け落ちがありません。

現行verで落とした場合にファイル(jpeg)の内容が
破損している事があるのですが、それも無いようです。
何か参考になりますでしょうか
327名称未設定:02/06/12 02:20 ID:cKd0wj9c
上ゲ
328えろす:02/06/12 21:15 ID:NrRxl57i
>>325
URL抽出してダウンロードは行の最初に01/40みたいな数字が出ると思いますが、
この数が足りないのでしょうか?
それとも40個ダウンロードしたはずが、ダウンロード済みファイルが、それより
少ないという事ですか?

前者の場合、URLのマッチが適当なせいですかね。(これは修正予定です)
あるいは拡張子指定で、jpg jpegと2つ指定していないとか。
よければURLを書いてくれれば、試してみますけど。

作者自身はURL抽出は半角ぐらいでしか使わないので、数とかは気にしてませんでした
た。00-40なら連番を使ったほうが良いかもです。
329325:02/06/13 20:58 ID:/NVxVUIQ
>>328

>それとも40個ダウンロードしたはずが、ダウンロード済みファイルが、
>それより少ないという事ですか?

そうです。 不特定でファイルが欠損します。
また落としたファイルが不完全になる場合がありますが、
これも条件や特定ファイルではなくおきます。

>あるいは拡張子指定で、jpg jpegと2つ指定していないとか。

いえ、それは入っております。

>よければURLを書いてくれれば、試してみますけど。

ttp://www9.kinghost.com/hardcore/00002/168/[001-040].jpg
です。 指定先を少し変えても起きますので、お試しください
330えろす:02/06/15 21:31 ID:0qrDmLKY
試してみましたが、うちでは欠損しませんでした。
ってゆーか、指定のURLのようなところは、Jpeg一階層とかを使うべきかと。
あるいは連番ダウンロードで。

URL抽出は
http://vip.bbspink.com/test/read.cgi/ascii/1020673952/l50
のようなURLを直書きしてあるような所で、全部コピーして、URL抽出するんで。
>>329の用なURLの場合、ただcURLに渡してるだけなんで、エラーはcURLによるも
のかと。

それと、並列で試用する場合は全部の同時ダウンロード数が40を超えないようにすれ
ば、動きはします。確かに同時ダウンロード数が多ければ多いほど、欠損は多くなると
思いますが。
331325:02/06/16 22:40 ID:qlU8AjMl
>>330
ありがとうございます。 なぜ欠損してるのか未だにわからないんですが。
連番もなぜか欠損してしまいまして。

jpeg一階層は使った事がありませんでした。
(理解できなかったんで)

一階層の方を試してみます。
332325:02/06/16 23:03 ID:m+orDBto
すいません、やっぱりjpeg一階層の時に
どういうアドレス指定にすればよいのか分からないんですが(恥)
333へたれ:02/06/16 23:48 ID:EfDyaeyu
>>332
おいらが答えてもいいものかとも思いますが。。
jpgのみ1階層ってのは http://www.hoge.com/index.html
ってページがあるとしますよね。でこのページでリンクされている
jpeg 画像のみを落としてきます。
2階層にすれば、index.htmlからリンクされているページにある
jpeg画像も落としてきます。

index.html ---------- image.html
|_1.jpg       |_3.jpg、4.jpg

例えば↑のような階層構造のサイトがあったとします。
http://www.hoge.com/index.htmlをブラウザで開いておいて
jpgのみ1階層を実行すると、落ちてくるのは1.jpgのみです。
2階層にすると1.jpg, 3.jpg, 4.jpgが落ちてきます。

んでこれらはwget というtool が実際には実行してます。
wget のオプションが分かれば、サイトによって色々オプションを簡単に
変更できるのも、AS_Downloaderの使いやすい所だな、
と使わせてもらっていて良く思いまつ。

最後にwgetはinstallしてますか?install した覚えがないのなら
こちらからpackage を落としてきれ入れときましょう。
http://www.cosmos.ne.jp/~kaz6120/dwnld/index_fr.html

334325:02/06/17 00:01 ID:wHFYgt5x
>>333
ありがとうございます。 御指摘のようにやってみます。

>wget
以前入れた記憶はあったんですが、再度インストールします。
335325:02/06/17 00:35 ID:wHFYgt5x
>wget
pkg入れたんですが認識してくれないようです。
terminalがwgetが無いと言います(泣)

インストーラで入ったのは
/Library/receipts/wget-1.8.1.pkg
となっています。

あとAS_downloaderの中にあるscriptでwgetが入ると
readmeに書いていただいてるので、それでOKだと思っていたんですが
terminalを見ると
cp: /sw/bin/wget: No such file or directory
ということでwgetのインストールが失敗しているようなんですが
どうしたらよいでしょうか?
336へたれ:02/06/17 00:57 ID:h/ovY4oP
>>335
大丈夫、別におかしくなってないよん。
fink つうpackage systemを使ってwget をインストールすると
/sw/bin/wget に入ります。んでAS_Downloader で実行するときに
これではwget を実行出来ないので、/usr/bin にコピーしてるんだと思います。
(詳細は過去ログ参照)
そんで、落としてきたパッケージでwget をinstall すると
/usr/local/bin/wget にinstall されます。なんで同方されてる
インストールスクリプトだとうまくいかんのです。

Edit を押して、コマンドのwget となっている部分を/usr/local/wget
と変更してみて下さい。
前:wget ~~~~~色々書いてる部分
後:/usr/local/bin/wget 〜〜〜色々書かれている部分はそのままで。

それかTerminal を立ち上げて↓のコマンドを実行。
sudo ln -s /usr/local/bin/wget /usr/bin/wget

実行するのはどちらか一方でいいです。
んでJpeg のみ一回層のコマンドの部分に "-l 1"と小文字のLの続いて数字が
書かれていると思います。この数字が階層の指定です。
サイトによって色々試してみて下さい。
337へたれ:02/06/17 00:58 ID:h/ovY4oP
>>336の訂正
誤:コマンドのwget となっている部分を/usr/local/wget

正:コマンドのwget となっている部分を/usr/local/bin/wget
338えろす:02/06/18 22:13 ID:QbDJwThC
>>336
へたれさんサポートいつもどうもです、はいそうですね、シンボリックリンクって
素敵ですね。いつも自分の間抜けさには、あきれますです。
そういう時はどうか遠慮なく突っ込んでください。(w

んで、面白いperlスクリプトを発見しました
http://www.securiteam.com/securitynews/5XP031F0BM.html
スリープしてるOSXマシンを起こしてくれます。省エネ設定のオプション→
ネットワーク管理者の〜をチェックして、リモートマシンから実行すると、
見事に起きてくれました。ethernetのアドレスはネットワーク環境設定で
調べられます。これで、なかなかスクリプトの幅が広がります。
339名称未設定:02/06/18 22:41 ID:awX0CID1
appはloginと同時に起動できるけど…perlスクリプトでもそれを出来ないのかなぁ…。
340へた〜れ〜:02/06/19 01:35 ID:aR4PWqrA
>>339
あたしゃ、作ったスクリプトをapple script で呼び出して(do shell script を使って)、
んでそのApple Scriptをアプリ形式で保存して、login項目に登録してるよ。

>>338
symlink はかな〜り、素敵です。私のhomeにはjpegのsymlinkが溢れてますし。
てかwget でとってきたファイル、そろそろ整理しとかないとヤバイ

で全然関係ないけど wwwoffle を導入してみたけど、これ(・∀・)イイ!
341名称未設定:02/06/19 03:06 ID:OovHKjM0
>>339
.loginにでも書けばいいんじゃない
342名称未設定:02/06/19 20:17 ID:l5NF3aqQ
>341
どこにあんの?
sudo find / -name .login
で出てこなかったヨ!

>340
applescriptは分かんない………
良ければうpキボンヌ。
343名称未設定:02/06/19 20:25 ID:fp4eO4uD
>>342
なかったら自分でホームディレクトリに作るんよ
344名称未設定:02/06/19 20:31 ID:l5NF3aqQ
………なるほど。
しばらく書き方のサイトを漁ってきます………。
345名称未設定:02/06/19 20:37 ID:tSnDH8c7
ログインでシェル走らないから.loginは呼ばれないと思われ
346へた〜れ〜:02/06/19 21:33 ID:aR4PWqrA
>>342
スクリプトが~/bin/myPerlだとすると、
Apple Scriptだとこれだけ。

do shell script "~/bin/myPerl"

.loginだとこんな感じかな、(shell がtcshならね)

if (-x ${HOME}/bin/myPerl) then
${HOME}/bin/myPerl
endif

ただ.loginが読み込まれるのって、login時じゃなくて
Terminalの新規windowが開かれるたびに読み込まれてるようなきがする。
.loginファイルは既に置いてないので定かではないけど。
347342:02/06/19 23:25 ID:sNxRnI/C
>345
う゛わ…そうなんですか…。

>346
thanks.
348名称未設定:02/06/25 04:14 ID:3dhlC3zS
AppleScript 1.8.3降臨

display dialogがモードレスになってるYO!びっくりした。
choose fileやchoose folderは始めからモードレスだったっけ?
349名称未設定:02/06/26 17:49 ID:CjLMaIsi
>>348
do shell scriptで引数に日本語ファイル名を渡せない問題って
解決したんだろうか? スレ違いだったらスマソ
350名称未設定:02/07/02 21:53 ID:jOXu+r+4
>>349
渡せなかったよ〜。10.2待ちですな。
とレスしつつageてみる。
351名称未設定:02/07/02 22:11 ID:Zg/r418K
AppleScriptのハンドラをJava-Cocoaから呼び出すことはできませぬか?
352名称未設定:02/07/09 14:37 ID:TjVvepXe
OSXで単純に新規Finderウインドウを出すだけのスクリプトってどう書けばよいですか?
353名称未設定:02/07/09 15:33 ID:CCt45wP5
>>352
新規Finder ウインドウをだすだけなら command + N
が一番速いと思うけど。任意のフォルダを開きたいのなら
OS 9までと同じじゃないかな。

tell application "Finder" to open folder "Documents" of home
354名称未設定:02/07/09 18:24 ID:XKivkI6c
>>352
tell application "Finder"
activate
make Finder window
end tell
355名称未設定:02/07/11 03:53 ID:Zp4x5PXw
>>348
>choose fileやchoose folderは始めからモードレスだったっけ?

ちゃうと思う。前はもーだるだたはずだ。

>>349
>do shell scriptで引数に日本語ファイル名を渡せない問題って
>解決したんだろうか? スレ違いだったらスマソ

TEC.osaxでUTF-8に変換してわたしてみそ。
うまくいく場合といかない場合があるが(笑)
ttp://www.bekkoame.ne.jp/~iimori/sw/TECOSAX.html
こいつを入れて、
TECConvertText "日本語文字列" fromCode "X-MAC-JAPANESE" toCode "UTF-8"
でUTF-8に変換した文字列が返る。
空白とかだぶるくおーととかあるとまた面倒なんだが(泣)、
あとはとりあえずdo shell scriptにわたすだけー。
example:
do shell script ("mkdir ~/" & (TECConvertText "にちゃんねる" fromCode "X-MAC-JAPANESE" toCode "UTF-8"))
do shelll script ("open ~/"&(TECConvertText "にちゃんねる" fromCode "X-MAC-JAPANESE" toCode "UTF-8"))
どだ?"にちゃんねる"フォルダウィンドウ開いたか?

>>354
それでしかComputerのウィンドウって1発じゃ開かないのか、ひょっとして。
逆に、新規ウィンドウで~を開くようにしていてもコンピュータが開く。あれ?

Finder遅いから、do shell scriptで開いた方がいいかも。
356誘導され初心者:02/07/11 06:57 ID:4PGP55ac
あまりのレベルの高さに書き込むのに勇気がいります。。
みなさんかっこ良すぎです。
 超基本的なことなんですが、PreferencePanelsの中の物を
AppleScriptで開くにはどうしたらいいのでしょうか?
OS9とは違ってtell applicationで呼び出せないので、
FinderからOpenしようと思ったんですが、わからず。。
open selectionとかopen itemとかの違いも分かっていないので、
とりあえず全部試した(w んですが、全滅しました。
教えて下さいませ。

で、Script Editerなんですがこれって「記録」できないんですか?
OS9のスクリプト編集プログラムと同じ手順でやっても何も記録されませんです。

流れを壊したらすみません。
357へたーれ:02/07/11 21:46 ID:74Lx/4AA
>>356
OS X質問スレの人でしょうか?startup disk を変更するってのなら、
以前 >>246にのせたのがあります。ただちょっと長いので、
OS 9が一個しか無く、それで起動出来さえすれば好いならこんなんどうです?
注意点はOS 9のシステムフォルダのパスに日本語が含まれていると駄目なので、
半角英字に変更しておいてください。
------------------------------
property sys9Path : {}
property passwdStr : {}
if (passwdStr is {}) then
display dialog "パスワードを入力" default answer "" buttons {"Ok", "Cancel"} default button 1
set passwdStr to text returned of result as string
if (passwdStr is "") then return
end if
if (sys9Path is {}) then
set sys9Path to POSIX path of (choose folder with prompt "OS9のシステムフォルダを選択")
if (sys9Path is {}) then return
end if
try
set cmdStr to "sudo /usr/sbin/bless -folder9 " & "'" & sys9Path & "'" & " -setOF "
do shell script cmdStr password passwdStr with administrator privileges
end try
display dialog "すぐに再起動しますか?" buttons {"Yes", "Cansel"} default button 1
set rFlag to button returned of result
if rFlag is "Yes" then
tell application "Finder" to restart
else
return
end if
358へたーれ:02/07/11 21:53 ID:74Lx/4AA
でもう一つ、PreferencePanesの項目を表示するには
tell application "Finder" to open file "System:Library:PreferencePanes:DesktopPictures.prefPane:" of startup disk
って感じです。ただ今の所 Apple Script対応ではないので、
各項目を変更するにはdefaults 等のコマンドを do shell script
で呼び出すのがいいかと思います。
359名称未設定:02/07/14 01:36 ID:gOdkKRsM
AS_Downloaderの作者様、いつもお世話になっております。

何とかJTerminalでAS_Downloaderを動かしたいのでが…
どうにかならないものでしょうか?
360えろす:02/07/14 23:31 ID:C3rfBVa9
>>359
JTerminalがスクリプタブルではないんで、かなり無理っぽです。
Jagerタンまで待ちですね。日本語パスの問題ですか?

>>355
すげー。UTF-8にすれば日本語通るんだ。知りませんなんだ。
飯森さんのOSAXはホントイイね。田中先生には、早くOSXに移行して
欲しいです。
361名称未設定:02/07/15 00:40 ID:WaRibdNU
>360
>日本語
そです。
うぅっ ジャガータン待ちですか……(;´Д`)
362名称未設定:02/07/17 09:38 ID:FFg/GV3F
grepって複数行の検索キーをサポートしてないのね?
例えば、"hoge\nhoge"のような…。
363名称未設定:02/07/17 10:34 ID:FFg/GV3F
OS Xだとfindの-atimeオプションが効きそうで効かんね。HFS+だからかな…。
364名称未設定:02/07/17 15:56 ID:fncYoCTI
>>362-363
元がed 発だからね。行指向なのはしょうがない。
とりあえず目的の物がマッチすれば好い、ってんならこうかな。
もっと好い方法がありそうだけど。
% grep -e 'hoge$' -e '^hoge' file...

sedを使うとマッチするものだけを取り出すのは容易いけど
% cat scp.sed
/hoge$/{
N
/\nhoge/{
p
}
}
% sed -n -f scp.sed file...

うちもHFS+で-atime は -n も +n もどちらも効いてるけど。
365362:02/07/18 19:56 ID:F0+UJqOX
>>364
findの-atimeは確かに効きますね…。
たまたまその前にgrepでファイル総ざらい検索をしていたため、
全てaccessed扱いになってるの考慮していなくて、勘違いでした。失礼しますた。
sedはよくわからにゃない、、ちょっと勉強してみます。
366名称未設定:02/07/23 09:23 ID:Pnl80juT
保守
367名称未設定:02/07/27 00:33 ID:4z0fP6L6
保守ついでにage
ついでにみなさんが使っている、便利なスクリプトキボン
368名称未設定:02/07/27 21:27 ID:4T8tRlw5
先生!Applescriptを勉強し始めて3時間の生徒です!
どうがんばっても新規フォルダを
好きなところにつくれない&好きな名前で作れないです!
先生!ヒントをください!
369名称未設定:02/07/28 02:30 ID:2+8L2Ydd
>>368
tell application "Finder"
activate
set place to choose folder with prompt "どこに作りますか?"
make folder at place
end tell
これで一応、任意の場所にフォルダを作れるかな。
名前変更はその作ったフォルダを選択して
set name of selection to "新しい名前"
とすればいけるのかな。
今いちわからんので、次の人にまかした!
370名称未設定:02/07/28 02:48 ID:P7D/NEx4
はじめに名前を入力させてみたり。

set A_Name to text returned of (display dialog "作成するフォルダの名前を入力" default answer "")
set A_Place to choose folder with prompt "どこに作りますか?"
tell application "Finder" to make folder at A_Place with properties {name:A_Name}
371名称未設定:02/07/28 03:00 ID:P7D/NEx4
property App_Name : "■■■ 禁煙マラソンカウンター ■■■" & return & return & return
property Bigin_Date : ""
property Cigarette_Day : ""
property Cigarette_Price : ""

on run
if Bigin_Date = "" then
my Bigin_No_Smoking()
else
my Current_No_Smoking()
end if
end run

to Bigin_No_Smoking()
display dialog App_Name & "禁煙開始に向けて設定します。" & return & ツ
"いくつかの質問に答えてください。" buttons {"キャンセル", "設定する"} default button 2 with icon 1
set Bigin_Date to current date
repeat
set How_Many to text returned of (display dialog App_Name & ツ
"【Q1】" & return & "1日にタバコを何本吸っていましたか?" default answer "" buttons {"本"} default button 1 with icon 1)
try
set Cigarette_Day to How_Many as number
if Cigarette_Day ウ 1 and How_Many does not contain "." then exit repeat
end try
end repeat
repeat
set How_Much to text returned of (display dialog App_Name & ツ
"【Q2】" & return & "1箱いくらのタバコを吸っていましたか?" default answer "" buttons {"円"} default button 1 with icon 1)
try
set Cigarette_Price to How_Much as number
if Cigarette_Price ウ 1 and How_Much does not contain "." then exit repeat
end try
end repeat
set Set_Menu to button returned of (display dialog App_Name & "【禁煙開始日時】" & return & Bigin_Date & return & return & ツ
"1日の喫煙数:" & How_Many & "本" & return & "タバコの値段:1箱" & How_Much & "円" & return & return & ツ
"上記設定でよろしいですか?" buttons {"やり直し", "禁煙開始"} default button 2 with icon 1)
if Set_Menu = "やり直し" then my Bigin_No_Smoking()
end Bigin_No_Smoking
372名称未設定:02/07/28 03:01 ID:P7D/NEx4
to Current_No_Smoking()
set K_Seconds to (current date) - Bigin_Date
set ret to my Make_ymdhm(K_Seconds)
set Dialog_1 to "禁煙時間 " & Y of ret & "年 " & mo of ret & "月 " & d of ret & "日 " & h of ret & "時間" & mi of ret & "分"
set Dialog_2 to "吸わなかったタバコ " & K_Seconds div (86400 / Cigarette_Day) & "本"
set Dialog_3 to "浮いたタバコ代 " & (round (K_Seconds div (86400 / Cigarette_Day)) * 12.5) & "円"
set ret2 to my Make_ymdhm(K_Seconds div (86400 / Cigarette_Day) * 330)
set Dialog_4 to "延びた寿命  " & d of ret2 & "日 " & h of ret2 & "時間" & mi of ret2 & "分"
set Result_1 to button returned of (display dialog App_Name & Dialog_1 & return & Dialog_2 & return & Dialog_3 & return & Dialog_4 ツ
buttons {"禁煙失敗", "OK"} default button 2 with icon 1)
if Result_1 = "禁煙失敗" then
set Delete_Data to button returned of (display dialog App_Name & "禁煙に失敗しましたか?" & return & ツ
"残念ですが、今までのデータを消去します。" buttons {"消去しない", "消去する"} default button 1 with icon 1)
if Delete_Data = "消去する" then
set Bigin_Date to ""
set Cigarette_Day to ""
set Cigarette_Price to ""
end if
else
set the clipboard to Dialog_1 & return & Dialog_2 & return & Dialog_3 & return & Dialog_4
end if
end Current_No_Smoking

to Make_ymdhm(sec)
set years to 60 * 60 * 24 * 365
set months1 to 60 * 60 * 24 * 30
set ret to {Y:0, mo:0, d:0, h:0, mi:0}
set Y of ret to sec div years
set mo of ret to (sec - (Y of ret) * years) div months1
set d of ret to (sec - (mo of ret) * months1 - (Y of ret) * years) div days
set h of ret to (sec - (mo of ret) * months1 - (Y of ret) * years - (d of ret) * days) div hours
set mi of ret to (sec - (mo of ret) * months1 - (Y of ret) * years - (d of ret) * days - (h of ret) * hours) div minutes
return ret
end Make_ymdhm
373名称未設定:02/07/28 03:07 ID:P7D/NEx4
>>371-372を説明

なんか晒したくなってきたので最近作った簡易禁煙マラソンカウンターです。
長いので二つに分けましたが、両方ともコピペってください。
http://life.2ch.net/test/read.cgi/cigaret/1026275689/l50
↑このスレでWin版使ってるみんなが結果をコピペするので羨ましくて作りました。
Mac版もあるみたいですが、ハイパーカード?な英語版みたいなので。

使い方は簡単。
禁煙を決意したら起動してください(w
初めて起動すると、1日のたばこの本数と1箱の値段を聞かれるので答えるだけ。
次回からは起動するたびに禁煙の成果を確認でき、結果をクリップボードにコピーできます。
ぜひ、上記スレに貼付けてくだされ。
禁煙に失敗したら「禁煙失敗」ボタンで最初からやりなおしです。
374名称未設定:02/07/28 03:19 ID:DNT2lRbV
おもろいっ
タバコ吸わないので禁オナニーに使います
375名称未設定:02/07/28 08:00 ID:SfFmxzSJ
>>369-370
先生!ありがとうございます!
376368:02/07/28 12:13 ID:SfFmxzSJ
先生!
menu scriptから実行すると名前を入力するところで
日本語が使えないんですが、これは仕様でしょうか?
377370じゃないが:02/07/28 12:37 ID:79wXMbZQ
>>376
日本ご対応アプリのレイヤー内に入れとかないとだめみたいよ

tell application "Finder"
activate
set A_Name to text returned of (display dialog "作成するフォルダの名前を入力" default answer "")
set A_Place to choose folder with prompt "どこに作りますか?"
make folder at A_Place with properties {name:A_Name}
end tell
378368:02/07/28 13:11 ID:SfFmxzSJ
>>376
ありがとうございます!ここの先生方は本当に親切ですね!
379生徒:02/07/28 14:44 ID:SfFmxzSJ
先生!ツギハギして、やっと単語を調べるscriptができました!

tell application "Internet Explorer"
Activate
set daimei to "goo [英和・和英辞典検索]"
set tango to text returned of (display dialog daimei & return & return & ツ
"調べたい単語は何ですか?" default answer "" buttons {"キャンセル", "OK"} default button 2)
set docchi to button returned of (display dialog daimei & return & return & ツ
"単語:" & tango & return & return & "この単語をどちらで検索しますか?" & return & return & "" buttons {"和英", "英和"})
if docchi = "和英" then
OpenURL "http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=" & tango & "&sw=1"
end if
if docchi = "英和" then
OpenURL "http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=" & tango & "&sw=0"
end if
end tell

できれば一回のダイアログで単語入力、和英・英和の選択ができるといいのですが。
先生!アドバイスをお願いします!
380名称未設定:02/07/28 15:16 ID:KXpfHdFJ
tell application "Internet Explorer"
Activate
set daimei to "goo [英和・和英辞典検索]"
display dialog daimei & return & return & "調べたい単語は何ですか?" default answer "" ツ
buttons {"キャンセル", "和英", "英和"} default button 3
set {tango, docchi} to result as list
set adress to "http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=" & tango
if docchi = "和英" then
OpenURL adress & "&sw=1"
else
OpenURL adress & "&sw=0"
end if
end tell

これでど
381名称未設定:02/07/28 15:22 ID:KXpfHdFJ
ちょっと恥ずかしいので訂正
adress → address
382生徒:02/07/28 16:26 ID:SfFmxzSJ
なるほど!
先生!ありがとうございます!
383370:02/07/28 19:58 ID:pGGq3B+B
>>374
わはは、反応ありがと。
禁オナニーすか、成果の項目を適当に変えてみてちょ。
「縮まなかった身長」とか、「死ななかった精子」とか(w

>>376-377
これはスマソかった。
アプレットにしたときの文字化けとかは知ってたけど、ScriptMenuからでも
日本語入力はダメなのか。知らなかったす、ありがと。
このへん、ジャガでは対応してるといいな。

>>379-380
頂きますた。これは便利すね。
384名称未設定:02/08/02 16:58 ID:b26s7QDS
Macをサーバーにして外部からアップルスクリプトを実行する場合、
classic環境では/script.acgiみたいな感じで普通に動いていたんですが、
OSXではどうやったら動くんですか?
385384:02/08/02 17:01 ID:b26s7QDS
classic環境じゃなくて、OS9をサーバーにしていた時ですね。
今はOSXをサーバーしています。
386名称未設定:02/08/10 00:13 ID:fTRJcLmU
保守。糞スレ対策。
387えろす:02/08/13 00:01 ID:JK+JDsPy
>>384
えらい亀レスだけど、
http://www.alles.or.jp/~factory/mac/script-Runner.html
にそれらしいソフトがあります。使えるかどうか忙しくて検証してないです。
すんまそ。でもCarbonもあるみたいだし、使えそうです。

ちなみにPerlにApplescriptを埋め込んで、CGIとして実行してみたけど、
当たり前に駄目でした。
388君の小さな友達 ◆GEnIal.g :02/08/18 02:52 ID:s1E35AfT
>>386 悲しいけど同意。ここは名スレの資格十分にあり。
389名称未設定:02/08/19 23:58 ID:YcLBgGWp
OS Xなんですが、なんとかしてF-keyからAppleScriptを使う方法ないですか?
ちょっとした作業なのでアプリにするのはなしとして・・・
390名称未設定:02/08/20 00:39 ID:R1oU6j8A
ScriptMenuでいいじゃん
391名称未設定:02/08/20 01:27 ID:XVc+aICs
>>390
まったく答えになってない。阿呆か?
392名称未設定:02/08/20 02:05 ID:A+in7D/Q
>>389
Quickeys
393名称未設定:02/08/20 15:04 ID:A+in7D/Q
キメラで表示中のURLを取得することはできるかな?
あと、ネスケ6はどうだろう。
394名称未設定:02/08/20 15:29 ID:od1e5gvU
>>393
Chimeraはまだダメみたい。
Mozillaはできるから、Netscapeも大丈夫だろう(多分ね)
395名称未設定:02/08/20 16:40 ID:A+in7D/Q
>>394
ありがとう。Netscape6.2はOKだった。
7PRはタブ表示時に、少し難あり。
(AppleScriptからは、1ウィンドウにつき1ぺージ単位の認識だった)
396名称未設定:02/08/25 16:25 ID:SMW2Oh8X
OSXで、常駐して
再前面のウインドウを強制的にカラムにするってやつ
出来ないですか?
397名称未設定:02/08/25 16:30 ID:jSnW6CEs
起動ディスクや、起動時にオプションキーは面倒なので、
実行するだけで(あらかじめスクリプト内に記述してある)
システムを選択して再起動してくれるスクリプト書いてください。
398名称未設定:02/08/25 16:39 ID:abdF76kY
10.2だと/usr/bin/rubyが標準で実装されてますね。
いい感じだ。

>>397
過去スレ読んで
399名称未設定:02/08/25 16:40 ID:abdF76kY
間違った

過去スレ→過去レス
400名称未設定:02/08/26 05:47 ID:+H++mqHt
AppleScript Studioってどこで買えますか?
401名称未設定:02/08/26 20:37 ID:oKqGgZYx
>>400
OS Xのパッケージ版を買うとついてくるDeveloper Tools CDに入ってます
またオンラインのADC会員になれば無償でダウンロードできます
402名称未設定:02/08/26 23:21 ID:v16mSgeu
スクリプト関係で問題出た方おられますか?  Jaguarで
403名称未設定:02/08/26 23:26 ID:H2SIcKZG
>>402
例えば音楽CD内のオーディオトラックの情報が得られないことがありました。
404名称未設定:02/08/27 03:35 ID:Qj6bBcPi
JagerのAppleScriptで気付いた点いくつか

DiskCopyがスクリプタブルになってる
"BurnCD"とか"BurnDVD"とかいうコマンドがあるな
ようわからんのはイメージファイルの操作ができそうにないこと
OS 9の時の"segment imege"とか"createSMI"とかはない

システム環境設定もスクリプタブルに!
でも、う〜ん、用語説明見る限りでは何もできそうにない…

Digital Hub Scriptingというscripting additionsが入ってる
コマンドは"music CD appeared"、"video DVD appeared"など
オーディオCD、Picture CD、DVD、等を種類別に呼び出したい時に
つかうのかしら?
405つづき:02/08/27 03:36 ID:Qj6bBcPi
Standerd AdditionsとSystemEventsの用語が大幅に増えてる
フォルダアクションが復活

SCIMUISever、TCMUIServer、Kerberos、新しくスクリプタブルになったアプリ
ちょっと特殊なアプリのようなので、おもしろそうだけど
もともとどういう働きをするのか分からんので、いま検証中
知ってる人いたらおせーて

display dialogの日本語は相変わらず文字化け
日本語対応アプリのレイヤー内に入れる必要あり
Finder もあまり変わってない、アイコンの操作がまだできない
406404:02/08/27 03:38 ID:Qj6bBcPi
>Jager × Jaguar ○
カチャ
;y=ー( ´ー`)・∵.  ターン
\/|   |)
407名称未設定:02/08/27 04:44 ID:puzeUrXY
>>405
SCIMUI(Simplified Chinese Input Method User Interface)Serverは簡体字、
TCIMUI(Traditional Chinese Input Method User Interface)Serverは繁體字の
インプットメソッドで、Kerberosはネットワーク認証システム。
408名称未設定:02/08/27 17:38 ID:ElHrewWd
>>407
お、どうも
日本語環境では起動してないみたいですね
Kerberosも今のとこ使い方分からん(w

フォルダアクションがかなりいい感じ
フォルダにアイテムが追加された時に呼び出されるハンドラは
OS 9の時はそのフォルダを開いておかないと駄目だったけど
今度のは閉じてても大丈夫、ドックに登録したフォルダに
ドラッグ&ドロップで追加した場合も実行される
バックアップフォルダに自動的にコピーとかね
409名称未設定:02/09/01 10:33 ID:UDAFVnx8
保守
410名称未設定:02/09/04 11:38 ID:/TMNipb2
任意のアプリを「隠す」スクリプトってできますか?
411名称未設定:02/09/04 11:55 ID:/TMNipb2
% osascript -e 'tell application "Finder" to hide it'

はダメでした。
412名称未設定:02/09/04 12:33 ID:PxDB3Ydo
>>410
AppleScriptじゃ駄目なの?
Finderを隠すのは
tell application "Finder" to set visible to false
でできます
任意のアプリとなるとFinderにプロセスを隠してもらうといいです
tell application "Finder"
tell process "internet Explorer" to set visible to false
end tell
413名称未設定:02/09/04 12:41 ID:/TMNipb2
>>411
うまくいきました!
マジ助かりました。
414名称未設定:02/09/04 12:44 ID:aBb0PZgl
>>411
% osascript -e 'tell application "Finder" to set visible of application process "TextEdit" to false'

でどう?aliasに登録するのは面倒くさいのでパス。
でも遅いよ。コンパイル済みApple Scriptから呼び出した方が速い。

415名称未設定:02/09/04 12:44 ID:aBb0PZgl
ありゃ、遅かったか。
416名称未設定:02/09/06 01:05 ID:mXgcvue2
OS XのIEはダウンロードファイルのコメント欄に
元URLを記入しないのでAppleScriptで作りますた
iCabだとfindURLってコマンドがあって一発でURL取れるんですが
IEには無いのでダウンロードマネージャの項目を利用してます
当然ダウンロードマネージャに記録されてないファイルには無効です
Finderで選択後実行してください


property theFilePath : (path to preferences from user domain as string) & "Explorer:Downloads.html"

tell application "Finder"
set downroadsInfo to my GetDownRoadsInfo()
set fileLists to selection
repeat with szFile in fileLists
set fileName to name of szFile
try
set comment of szFile to my find_URL(fileName, downroadsInfo)
end try
end repeat
end tell
417416:02/09/06 01:06 ID:mXgcvue2
--つづき

on GetDownRoadsInfo()
open for access file theFilePath
try
set downroadsInfo to read file theFilePath using delimiter {return}
end try
close access file theFilePath
return downroadsInfo
end GetDownRoadsInfo

on find_URL(fileName, sourceText)
repeat with textItem in sourceText
if fileName is in textItem then
set the copyFlag to 0
set the outText to ""
repeat with szChar in textItem
set szChar to the contents of szChar
if szChar is "\"" then
set the copyFlag to copyFlag + 1
else if the copyFlag is 1 then
set the outText to the outText & szChar as string
else if the copyFlag is 2 then
exit repeat
end if
end repeat
return the outText
end if
end repeat
end find_URL
418名称未設定:02/09/09 15:55 ID:6cPBTqUK
Jaguarにしたら、cronでosascriptが効かないというバグが直ってたYO
AppleScriptの定期実行が可能になりますた
419名称未設定:02/09/09 18:33 ID:zS+R4zjS
>402
ASStudioだが、Jaguarリリース直後に出たDeveloper Toolsのパッチを当てると、
NSPanel ClassのAttributeでUtility Windowにチェックを入れると
強制的にHide on deactivateにチェックが入るようになってしまった。
グレー表示でチェックも外せない。
Info.plistの中でNSUIElement=1としてDockに出ないようにしてたアプリがあるんだが、
これのせいで他のアプリを選ぶとWindowが消える(泣)
Developer Toolsは入れなおしましたよ、ええ.......
420名称未設定:02/09/12 20:19 ID:duVNxEE/
保守age
421初心者:02/09/13 20:44 ID:9eva8ZE2
--OS 9では以下のスクリプトは動いていましたが、
tell application "Finder"
activate
make new folder at folder "HD 2:temp"
select folder "HD 2:temp:名称未設定フォルダ"
set name of selection to "10000 1" as string --この文でエラー
end tell

となってしまいます。どうしてか解りません。
ご指摘をお願いいたします。
422名称未設定:02/09/13 23:41 ID:9WUT9VQ5
>>421
OS Xの selection の扱いについては後で
とりあえず案件についてはセレクトする必要は無いです

tell application "Finder"
activate
make new folder at folder "HD 2:temp:" with properties {name:"10000 1"}
end tell

これでできるはずです
423422:02/09/13 23:41 ID:9WUT9VQ5
で、OS Xの selection なんですが
move selection to trash
とか
delete selecton
なんかは問題ないんですがFinderのitemとしての属性を変更しようとするとできない
要するに複数参照が利かないんですね
set comment of selection to "こめんと"
これ、無理
従って、いったん変数に入れて明示的に参照のリストに変えて、ひとつひとつ取り出す
set theFiles to selection
repeat with i in theFiles
set comment of i to "こめんと"
end repeat
というわけ

あ、俺も初心者なんで間違ってたら突っ込んで下さい
424421:02/09/14 00:39 ID:2ILxYV6N
 >422 様、ありがとうございました。
 ご指導の通りにしたら、出来ました。
 OS X の selection が OS 9と異なるとは、思ってもおりませんでした。
 早速、書き直します。
425名称未設定:02/09/14 02:14 ID:eUpH8vuP
say "It tae yoh she!"
426名称未設定:02/09/14 02:16 ID:eUpH8vuP
>>425
say "O ma ei mo nah!"
427名称未設定:02/09/14 02:17 ID:eUpH8vuP
say "Jisaku G yen, c tey me ma suu ta"
say "Oo 2 da, shee know!"
428名称未設定:02/09/14 02:20 ID:1du58nbs
歳前面のウインドウをコラム表示にする、ってどうやるの?
429名称未設定:02/09/14 03:04 ID:mhtpVX6B
>>428
こんな感じ
tell application "Finder"
set current view of window -1 to column view
end tell
430名称未設定:02/09/14 03:16 ID:1du58nbs
(;´Д`)ありがとう
431名称未設定:02/09/14 05:00 ID:J3XkzFdl
>> 423
Finderのselectionではリスト型で返ってくるので
明示的にエイリアス型に変換すれば良いようです。

set comment of (selection as alias) to "こめんと"
432名称未設定:02/09/14 05:09 ID:J3XkzFdl
431の訂正
リスト型じゃなくて型不明ですね。
433名称未設定:02/09/14 06:57 ID:zxD9VQx9
>>431
セレクトしたのが一つだけの場合はそれでいけますね
複数だとできません
やっぱし複数参照が効かなくなったということでしょうか
434名称未設定:02/09/14 09:30 ID:J3XkzFdl
すみません。「複数」っていうのをすっかり見落としてました。
OS Xではrepeatでいちいち展開するしかないみたいですね。
435名称未設定:02/09/14 10:20 ID:3YGNEr0j
あの、VAIOみたいに、朝昼夕夜と
壁紙を時間によって換える事って
OSXのスクリプトでできますか?

何時間おきに換えるソフトはありますが......、
起動時、時計をみて、壁紙変更するのってなかなかありません
こんなのがあれば、すごくCOOLなんですがね〜
こういうのは、スクリプトでは無理なんですかね?
436えろす:02/09/14 15:25 ID:D42iYTtF
>435
desktop pictureの変更方法忘れちゃったけど
>起動時、時計をみて、壁紙変更するのってなかなかありません
ってのだったら

set a to time of (current date)
if a < 60 * 60 * 8 then
display dialog "夜中"
else if 60 * 60 * 8 < a and a < 60 * 60 * 12 then
display dialog "朝"
else if 60 * 60 * 12 < a and a < 60 * 60 * 18 then
display dialog "昼間"
else if 60 * 60 * 18 < a then
display dialog "夜"
end if

こんなふうに書けば良いかと。
437名称未設定:02/09/14 16:33 ID:3YGNEr0j
>436
ソレ動かしてみました〜
ちゃんと、昼間!とでました。

これに、自分の指定した壁紙に自動で変わるモノを書けば
OKなのでしょうが・・・・・

何分、今日初めてAppleSctipt起動したようなものでして....
お恥ずかしい限りです.....

専門家のみなさま、知恵をどうかよろしくお願いします。
438名称未設定:02/09/14 17:08 ID:mhtpVX6B
>>437
指定した時刻で壁紙を変更したいのなら
cron使えばいいんじゃないのかな。
例えばAppleScriptで、時刻が午前ならこの壁紙、
午後ならこの壁紙に変更っていうのを書いておいて、cronで
10,15,20 * * * /usr/bin/osascript そのファイル
って感じにしとけばいけるんじゃないかと。
ちなみにdesktop picturesを変更するのは↓ね。

tell application "Finder"
set desktop picture to 目的のfileのパス
end tell
439438:02/09/14 17:24 ID:mhtpVX6B
今cronに登録して試してみたけど、うまく変更されますた。
osascriptに引数としてファイルを渡すときは、
テキストかコンパイル済みスクリプト以外は受け付けないので
間違ってもアプリケーション形式にしないように。
440名称未設定:02/09/14 17:59 ID:3YGNEr0j
なんだか、難しすぎて、???な状態です。ヽ(`Д´)ノ ウワァァン

朝、昼、夕、夜
この4つの時間帯に自分の指定した壁紙に変えれれば良いんですが....
cronと言うのを使用しないと、駄目なんでしょうか?

用語が解らなかったので、1コ1コ検索してました<(_ _)>
レスが遅くなってすいません〜
441名称未設定:02/09/14 20:28 ID:3Esx2RMP
>>440
デスクトップピクチャの変更を、起動時にだけでいいのならcron使わなくても
>436氏と>438氏のスクリプトを組み合わせたものをアプレットで保存して
ログイン項目に登録しとけばいいです

起動中に時間帯が変わったらリアルタイムで変更させたい場合はcronでしょうね
って俺はcronの使い方分からんので、詳しい人のフォローを待って下さい

ちなみにAppleScriptにもon idleというハンドラがあります
一時間おきに呼び出して時間を調べて…
というようにもできますがcronの方がスマートなやりかたのような気がする
442440:02/09/15 10:13 ID:7SmabW9a
>>441
>デスクトップピクチャの変更を、起動時にだけでいいのならcron使わなくても
>>436氏と>>438氏のスクリプトを組み合わせたもので....

デスクトップピクチャの変更を起動時にだけでいいので
よろしければ、スクリプト書いてくださいませんかm(_ _)m

443名称未設定:02/09/15 11:49 ID:BSIqkuwl
>>442
--
property theFolder : ""

tell application "Finder"
if not (exists theFolder) then
set theFolder to (choose folder)
end if
set desktop picture to some file of entire contents of folder theFolder
end tell
--

これをログイン項目に入れておけば、ログイン時に指定フォルダの中の絵をランダムにデスクトップピクチャにしてくれる。

cronに登録するにはTerminalを起動して
crontab -e
とタイプ。それから
分 時 日 月 曜日 命令
といった形式の行を書き連ねる。例えば、毎日8時12時18時に"~/scripts/foo.scpt"というスクリプトを起動するなら、
0 8,12,18 * * * /usr/bin/osascript "$HOME/sripts/foo.scpt"
といった感じ。このエディタはviなので慣れないと難しいかも。エディタが起動したら、
i (上の行のコピー・ペースト) <esc> :wq <return>
という順でタイプすれば登録できると思う。
確認するにはもう一回 crontab -e とタイプ。 :q <return> で終了。
444435:02/09/15 14:51 ID:7SmabW9a
どうも有難うございました!
>>436氏が書いてくださったスクリプトの
display dialog を所を
>>438氏の教えてくださった
tell application "Finder"
set desktop picture to 目的のfileのパス
end tell

に変えて、壁紙が変わる時間帯の調整をしたら見事うまくいきました!
すごくCOOLです。
教えていただいたみなさんm(_ _)m感謝しております。
445名称未設定:02/09/15 17:29 ID:n5U9Jmv6
初歩的な質問で申し訳ありませんが、音量のミュートを解除するには、
どうすればよいのでしょうか?
tell application "Finder"
set volume 0
end tell
でミュートされ、直後に同様にvolume 1などとすると解除するのですが、
volume 0の後、一旦電源を落とし再立ち上げ後volume 1としても、ミュート
されたままなのです。なお10.2です。よろしくご指導のほど。
446名称未設定:02/09/15 18:21 ID:ELIvYX7I
こういうのはわくわくするね〜初心者からみると
447名称未設定:02/09/16 05:42 ID:sK+kztf0
>>445
AppleScriptの問題ではないかもしれません
手動で音量ゼロにして試してみては?
beep使って音ならしてみるといいかも
448445:02/09/16 08:37 ID:U19//eeK
>>447
早速の御指導ありがとうございます。手動で音量0にすると、音量0で
ミュートオンになり、その後AppleScriptのvolume 1では音量1になります
が、ミュートオンのままです。(システム環境設定サウンドで確認)
ミュート解除にはシステム環境設定サウンドを変えるしかないのでしょうか。
449445:02/09/16 08:43 ID:U19//eeK
追伸:beep使っても変わりませんでした。よろしくお願いします。
450名称未設定:02/09/17 11:11 ID:xxyVX/LM
>>448
うちでも試してみましたが、ミュートの解除は出来ませんでした
Terminal使えばできるかもしれませんが
少なくともAppleScript標準では無理かと
451445:02/09/17 12:35 ID:VDqjivFl
>>450
そうなんですか。実はAppleScriptは始めたばかりなんですが、
Terminalにも挑戦してみたいと思います。ありがとうございました。
452初心者:02/09/17 18:54 ID:PZl1DFpu
概出かもしれませんが、
Applescriptの質問です。
IEをコントロールし特定のURLを表示することはできました。
これをキャプチャしたいのですが....。
画面に収まらないサイズ(縦)の場合は画面をスクロールする必要があります。
そこでIEに対するスクリプト命令を知りたいのですが、
そもそもそういったことが可能かどうかも含めての質問です。

IEのスクロールバーをコントロールできるか?
スクロールバーの状態を知ることができるか?
表示ページのサイズを知ることができるか?
もっとクールな方法があるか?

初心者質問ですみません。
お知恵をお貸し下さい。
453名無し草:02/09/19 00:28 ID:RTTzsQe2
>443
初心者にはcrontabは辛いだろ。
と、いうわけで漏れはCronniXをおすすめする。
分 時 日 月 曜日 命令
がカラム表示になっているので初心者にも分かりやすいかと。

CronniXは日本語版がE-WAさんとこから行ける。
454初心者:02/09/19 19:42 ID:4VjbyRSi
初心者質問を連発します。
Apple Scriptで画面キャプチャーを行うための
コマンドというのはあるのでしょうか?
自分で調べた範囲ではありませんでした。
455名称未設定:02/09/20 01:09 ID:atAqeGBE
>>454
do script
456名称未設定:02/09/20 11:02 ID:bX2wQXVH
>>454
screencapture [-icmwsWx] [file] [cursor]
ですね、10.2からみたいです

set fileName to "スクリーン.pdf"
set desktopPath to POSIX path of (path to desktop from user domain)
do shell script "screencapture " & desktopPath & fileName

これでデスクトップに"スクリーン.pdf"という名前で保存します
457名称未設定:02/09/20 11:31 ID:BGbpqk4z
>455 456
情報有難う御座いました。早速テストをおこないます。

しかし、10.2となるとOS9上では使用できないということですね。
両方で動かす為には、素直にキャプチャソフトに命令という方法しか
ないのでしょうね。
458名称未設定:02/09/20 11:43 ID:xphEfPZs
IEのダウンロードマネージャーにURLを取り込むようなスクリプトって
作れるんでしょうか?
HP上のURLを抜き出して、それだけをまとめたHTTPを作ったりしてるんですが
結局クリックするなりドラッグしないとIEのダウンロードマネージャーには
加えられないんですよね。
459名称未設定:02/09/20 11:58 ID:bX2wQXVH
>>458
ダウンロードマネージャはExplorerフォルダのDownloads.htmlを
読み込んだもののようです
これをテキストエディタで開いたら一定の書式が読み取れるので
write命令でその書式に従って書き込んだら?
460458:02/09/20 12:13 ID:xphEfPZs
>>459
なるほど。
ということはある程度調べれば
エディタで一気に変換する感じでも取り込めそうかもしれませんね。
ちょっと試してみます。
もし上手くいきそうなら
最終的にこんな事が出来るスクリプトを作る感じでもよさそうですね。
色々このスレで勉強させて頂きます。
461名称未設定:02/09/20 12:30 ID:pNtqc9Ww
tell application "Internet Explorer"
OpenURL theURL to file theFile Flags 4
end tell
(*
theURL:URL文字列
theFile:保存先ファイル名(文字列)
これでダウンロードマネージャを使ってダウンロードできます。
Flags 4がポイント。つーか用語辞書くらい見ようぜ。
*)
462458:02/09/20 13:20 ID:xphEfPZs
>>461
どうもありがとうございます。
実は昨日から関心を持ちはじめたんで
アップルスクリプトに関してはかなりの素人です。
まだBasicなら汚いながらもプログラム出来る程度ですが。
おかげさまでアプリごとに用語説明が見れるのも今知りました。
とりあえずぼちぼち頑張ってみます。
463名称未設定:02/09/21 16:07 ID:Xdn7w9Xz
10.2からsayコマンドに、aiffファイルで書き出す機能がついてる
これをつかうと
何か歌を歌わせてそれをサウンドファイルとしてiPodに送り
朝の通勤電車内で聴いて鬱に…(w
という使い方ができると
464名称未設定:02/09/22 01:00 ID:xG3CRlx5
>>463
それいいっすねー。5月のなかばくらいに10.15を買っちゃったんで、
絶対買うか!とか思ってたんですが、AppleScriptもスピードアップ
してるみたいだし。

このスレの「待つわ」あたりだと、明るく通勤できるかも(w
http://pc.2ch.net/test/read.cgi/mac/1001947637
264からです。
465名称未設定:02/09/29 13:29 ID:5ngttnq7
保守。
466名称未設定:02/10/03 03:49 ID:FI2qq/Cy
唐揚げ
467名称未設定:02/10/03 03:50 ID:FI2qq/Cy
あげてない・・・逝ってきます
468名称未設定:02/10/04 03:23 ID:PKBg9Geq
foreach i (*.aif)
foreach -> mv "$i" `echo "$i"|sed 's/ [^.]*\././'`
foreach -> end
↑にAppleScriptでコマンド入力を自動にしたいのですが、
あちこち見て回りましたが全然分かりません。どなたかお助け下さい。

tell application "Terminal"
do script with command "foreach i (*.rtf)"
end tell

ってやると、Terminalの窓でforeach?と聞かれますが、
その時出す命令の、mv "$i" `echo "$i"|sed 's/ [^.]*\././'`
と次の命令の、endは上のAppleScriptにどこにどうやって入れれば良いのでしょうか?
469へたれ555:02/10/04 20:51 ID:+ZbuHs/e
>>468
Terminal初心者スレの人ですよね?あっちで答えた者です。
細かい事は省きますが、shellにはCシェル系とBシェル系に別れておりまして、
foreachってのはCシェル系の文法な訳です。これは必ず改行しなければならん
わけでして、applescriptから呼び出すとなると改行コードを直接埋め込む必要
がありそうでして、その方法が私はわからないので別な方法を書いときます。

その1:Terminalを呼び出して処理
tell application "Terminal"
do script with command "/bin/sh -c 'for i in *.aif;do mv \"$i\" `echo \"$i\"|sed \"s/ .*aif$/.aif/\"` ; done'"
end tell

その2:Terminalなしで直接実行
do shell script "for i in *.aif;do mv \"$i\" `echo \"$i\"|sed 's/ .*aif$/.aif/'` ; done"

その1では引用符の扱いがややこしくなってますので、sedコマンドはダブルクォートでくくってますが、
動作には支障が無いと思います。それとapplescript内では\の次にapplescriptでの特殊文字が無いと
怒られましたので、sedコマンドも若干変更してます。
470468:02/10/04 23:27 ID:75iD4Iwk
>へたれ555さん
その通り!Teminal初心者スレの初心者です。 …って、バレバレですね。(汗)
何度も助けていただき、ありがとうございます。 先生っ!

Teminalの窓が出るのがイヤーンなので、その2まで教えていただいてすごく感謝です。
無事にコマンド成功いたしました。この前調べた時に、繰り返し命令はforとforeachが
あるのは知ってたのですが、Mac(Terminal?)ではforeachの方しか使えないと
勝手に解釈して調べてませんでした。どっちの系統のも使えるんですね。
また後でforも勉強しないと…

せっかくfoeachを教えてもらったのに使えなくて、こんな汚いソースコードで我慢してたので見た目がすっきり!
凄く格好悪いですが、こんなので動かしてました。(汗)
do shell script "mv /Volumes/HD/DATA/Music/MP3/01*.aif /Volumes/HD/DATA/Music/MP3/01.aif"
do shell script "mv /Volumes/HD/DATA/Music/MP3/02*.aif /Volumes/HD/DATA/Music/MP3/02.aif"
try
do shell script "mv /Volumes/HD/DATA/Music/MP3/03*.aif /Volumes/HD/DATA/Music/MP3/03.aif"
end try
try
do shell script "mv /Volumes/HD/DATA/Music/MP3/04*.aif /Volumes/HD/DATA/Music/MP3/04.aif"
end try
以下、15行くらい続く...
471名称未設定:02/10/04 23:53 ID:1QexOYLu
へたれ555さん。seqimgつかわせてもらってます。(^^
自分で少し修正して使ってます。

1) ero[01-12]ero.jpg みたいなファイル名でもきちんと展開されるようにした。
2) [1-12] とした場合、「1,2,3...10,11,12」と展開し、
 [01-12]とした場合、「01,02,03....10,11,12」と展開されるようにした。
3) デフォルトで、親ディレクトリのrefererとuser-agentを送るようにした。

というか、このためだけにシェルスクリプトの勉強しました(w
472468:02/10/05 01:38 ID:rDpL8hgk
先生やTerminalスレのみなさんのおかげで、iTunesでエンコードしたAIFFを
LAMEを使ってmp3を作成するスクリプトが自分なりにきれいにまとまりました。
CDDBを使わないのが条件、iTunesライブラリにゴミが残るなどの超自分仕様なので他の人には使いにくいとは思いますが…
(普段は圧縮音楽スレのokunoさんのLet's encode with LAMEを使用)

do shell script "mkdir /Volumes/HD/DATA/Music/MP3/"
do shell script "mv /Volumes/HD/DATA/Music/不明なアーティスト/不明なアルバム/*.aif /Volumes/HD/DATA/Music/MP3/"
do shell script "rm -r /Volumes/HD/DATA/Music/不明なアーティスト/"
do shell script "for i in /Volumes/HD/DATA/Music/MP3/*.aif;do mv \"$i\" `echo \"$i\"|sed 's/ .*aif$/.aif/'` ; done"
with timeout of 1000000 seconds
do shell script "for i in /Volumes/HD/DATA/Music/MP3/* ; do /usr/local/bin/lame --alt-preset standard --interch 0.0005 \"$i\" \"$i\".mp3 ; done"
end timeout
do shell script "rm /Volumes/HD/DATA/Music/MP3/*.aif"
tell application "Finder"
activate
open folder "MP3" of folder "Music" of folder "DATA" of disk "HD"
end tell
473468:02/10/05 16:48 ID:BQtn8D8H
よく考えると、必要なのは
do shell script "for i in /Volumes/HD/DATA/Music/MP3/* ; do /usr/local/bin/lame --alt-preset standard --interch 0.0005 \"$i\" \"$i\".mp3 ; done"
だけだなぁ。

でも、勉強になったから良しとしよう。
474えろす:02/10/06 23:56 ID:TAoo09K6
4ヶ月ぶりにAS Downloderをウプグレードしました。
アプリ名をASDにしました。iDiskその内消えるので、本ハンで
公開を考え中です。バグレポート待ってます。

http://homepage.mac.com/ero_s/FileSharing1.html
475名称未設定:02/10/10 21:48 ID:jNEtJ1K6
AppleScriptを使用して
(別に他の方法でできるならそれでも構わないのですが)
とあるファイルにFinderの「このアプリケーションで開く」を設定するのは
どうやったらいいのでしょう??
476名称未設定:02/10/10 22:06 ID:cXa9V/e6
>>475
10.2に関していえば、OS 9以前と同じく
ファイルタイプとクリエータタイプを設定してやれば
希望のアプリで開きますよ
477名称未設定:02/10/10 22:23 ID:jNEtJ1K6
>>476
うーんとそうなんだけど、
Finderから「このアプリケーションで開く」>「全てを変更」を選択すると
この拡張子のファイル全てを関連づけしますって言われるんです。

それをScriptで実現したいのです。
478名称未設定:02/10/11 06:50 ID:AdQ9/AFp
>>474
作者タン。
いつも使わせてもらってまつ。
今の所、不具合はないので快適ですよ。
479名称未設定:02/10/11 21:34 ID:7ILM8oEP
いきなり質問のレベルが下がってあれなんですが、
うちのスクリプトエディタでは「参照をペースト」が効かないです。
みなさんのところではいかがでしょうか。
480えろす:02/10/12 00:57 ID:ALU3cRHJ
>>478
? (;´Д`)ありがとん

>>479
うちも効かないです
481名称未設定:02/10/12 01:57 ID:FG3d8Db4
ASD、Read meを読んだら10.2以上となってるけど、
10.1.5でも使えてる。
482Untitled:02/10/12 02:08 ID:8lkbjcd8
>477
info forの用語の中に"default application"というpropertyがありますが、
こいつはR/Oのようです。Finder/System Eventsの用語辞書の中にあるfileなどには
このdefault applicationに相当するpropertyが無いようです。
ので、スクリプトで設定するのは無理かと........

んで、info forでdefault applicationをgetして、希望するアプリじゃなかったら
他ので開く.......とかいう消極的な方法しか思い付かないです(;´Д`)スマソ
ちなみに、
tell application "Finder"
open theFile using theApplication
end tell
でtheFileをtheApplicationで開く。theFileはリストでもOKです。
483479:02/10/13 12:56 ID:Pa5Agv1P
>>480
うちだけじゃないならしかたないですね。
ちょっと面倒だけど我慢します。
レス、ありがとうございました。
484へたれ555:02/10/14 06:07 ID:SmnupJsO
ASD、うちとことでもiCab,IE共に問題なく動作してます。
で、コマンド引数の位置を任意に指定できたら、便利かなと思って
いじってみたんですが、うまくいきませんでした。
curl ++|grep '^http'|xargs wget -nd
みたいに"++"(文字列はなんでもいいんですが)の部分をURLに置換したかったんですが。
一応変更した部分を貼っときます。

--- Application.applescript.orig Sat Oct 12 01:17:22 2002
+++ Application.applescript Mon Oct 14 05:58:02 2002
@@ -326,7 +326,18 @@
else
set Cur_URL to ""
end if
- set Cmd_Str to "cd " & (item 4 of Tmp_Ref) & ";" & ((item 2 of Tmp_Ref) & " " & Cur_URL)
+ set tmp_cmd_str to item 2 of Tmp_Ref
+ if (tmp_cmd_str contains "++") then
+ set old_deli to AppleScript's text item delimiters
+ set AppleScript's text item delimiters to "++"
+ set Cmd_Str_1 to first text item of tmp_cmd_str
+ set Cmd_Str_2 to last text item of tmp_cmd_str
+ set AppleScript's text item delimiters to old_deli
+ set cmd_str_tmp to Cmd_Str_1 & " " & Cur_URL & " " & Cmd_Str_2
+ else
+ set cmd_str_tmp to (Cmd_Str & " " & Cur_URL)
+ end if
+ set Cmd_Str to "cd " & (item 4 of Tmp_Ref) & ";" & cmd_str_tmp
if ((item 5 of Tmp_Ref) as number) is 0 then
set thePanel to load panel "downloding_panel" from nib "configpanel"
set theSound to load sound "Submarine"

485へたれ555:02/10/14 06:14 ID:SmnupJsO
>>484の変更をした後にビルド→デバッグ→実行可能ファイルを実行、
では"++"の部分はクリップボード or ブラウザのURLに問題なく置換
されました。でもASDををダブルクリックして実行した場合は"++"は
ただの++として認識されて、URLは通常どおりコマンドの一番うしろ
追加されるだけでした。

何故〜。難しい。。
486名称未設定:02/10/15 02:10 ID:aTvgDMMd
10.2でスピーチをaiff出力してみる。
アプリケーションにしてテキストファイルをDnDで動くはず。
文書の最後に#Trinoidsとか入れると声が変わります。
ただし日本語ファイル名で出力すると落ちます。
なんでだろう。AS使ったの初めてだからわかりません(逃

on run
aif_exp(choose file with prompt "Choose text file")
end run

on open drop_item
set theFile to drop_item
set file_num to count (item of drop_item)
if file_num is 1 then
aif_exp(drop_item)
else
display dialog "Sorry, only 1 file can be handled."
end if
end open
487名称未設定:02/10/15 02:12 ID:aTvgDMMd
つづき。も少しスマートにまとめられそうなんだが……

on aif_exp(source_file)
set theInfo to info for source_file
set theName to (name of theInfo) & ".aiff"
open for access source_file
try
set theText to read source_file using delimiter ("#") as text
on error
set theSent to read source_file as text
end try
close access source_file
try
set theSent to item 1 of theText
set theVoice to item 2 of theText
end try
set theAif to (choose file name with prompt "Saving file..." default name theName)
try
say theSent using theVoice saving to theAif
on error
say theSent saving to theAif
end try
end aif_exp
488名称未設定:02/10/16 00:14 ID:/y1xo7yh
scriptmenuでperlスクリプトを実行すると、
バックグラウンドでひっそり実行してくれるので気分が良いのですが、
system("/bin/rm ./tempindexpl.txt");
こういう行を実行してくれず、気分が良くないです。
indexファイルから、必要な部分をlogファイルへ書き足し、
その最中にできて、実行後は必要ないtempindexplファイルを消去したいんですが、
scriptmenuからperlスクリプトを実行、という手順では限界なのでしょうか?
この際なので
applescriptからperlスクリプト実行→tempindexplファイル消去
→logファイルアップロード→indexファイルをmiで開く
というapplescriptを書いちゃおうと思っているのですが、
applescriptからperlスクリプトって実行できるんでしょうか?
あとapplescriptからサーバへファイルアップロードに関してもひっそりと不安です。
489名称未設定:02/10/16 12:04 ID:+HM+Lsmq
scriptmenuというのが何かもよくしらないけど、
systemじゃなくてunlink使わないのはなぜ?
あと関係ないけど、system関数的には
system( '/bin/rm', './tempindexpl');
と引数を分けるのが正しい使い方なり。

全然質問の答えになってなくてスマソ
490えろす:02/10/16 23:37 ID:VPbfogp0
>>485
レスありがとやんす。
set cmd_str_tmp to (Cmd_Str & " " & Cur_URL)
ここを
set cmd_str_tmp to (tmp_cmd_str & " " & Cur_URL)
としたら上手く逝きました。
でも、そのエラーは別の話っぽいですね。
この機能も入れて、あと一つバグを修正したら、どっかでおおっぴらに
公開しようかと思っていますが、よろしいでしょうか>へたれさん?

>>ALL
「AppleScript Programming for Mac OS X」掌田津耶乃著
がでました。よだれものの本です。高いけどオススメです。
491名称未設定:02/10/17 23:27 ID:iFDsQ1IW
質問です。
ウェブブラウザにウェブ翻訳を通すスクリプトを書きたくて
最初から入ってるサンプルスクリプトで
property target_URL : "http://www.cnn.com/"

open location target_URL
ってのがあったので、これを利用して
URLんとこをhttp://www.excite.co.jp/world/url/body/?wb_url=と
選択した文字列(ブラウザのロケーションバーから選択)にすればうまくいくかなと思ったのですがうまくいきませんでした。。。
初心者なので変数とか使うこともできないんです。。。
どなたか簡単にスクリプト書いて頂けませんか?
よろしくおながいしまする。
492名称未設定:02/10/18 00:13 ID:bVwxn3uN
493491:02/10/18 00:18 ID:R4ova1rz
>>492
ありがとうございます!!!
まさに探していたもののようです。
494491:02/10/18 00:35 ID:R4ova1rz
>>492
すいません!よく見てみたらダメでした。
IE用とiCab用しかなくてって優香
うちのデフォルトのChimeraはAppleScriptに対応しているのか!?という感じなので
>>491で書いたopen locationを使いたかったのです。
495名称未設定:02/10/18 20:02 ID:OUAFYoeH
>>494
>ChimeraはAppleScriptに対応しているのか!?

Chimeraをスクリプトエディタにドロップしてみれば良い。
漏れChimera使ってないからシランけど。

>open locationを使いたかったのです

翻訳スクリプトって、基本的な事はこのスレの過去ログに出てる。
現在開いてるURLを取得して翻訳サイトに流してるだけよ。
496491:02/10/19 00:54 ID:ikdmAM/0
>>495
過去ログにあったんですね。。。
すんません、逝ってきます。。。
497名称未設定:02/10/19 11:00 ID:6IhHUPqR
AppleScriptでインターネットロケーションファイルを作る方法はありますか?
ブラウザで開いているページのロケーションファイルをデスクトップ以外の特定のフォルダに
任意の名前をつけて保存したいのですが、何かいいやり方はないでしょうか。
498名称未設定:02/10/19 15:09 ID:s+PM5mkb
>>497
IEだとこんな感じでしょうか。エラー処理とかしてないけど。

tell application "Internet Explorer"
set winID to item 1 of (ListWindows)
set winInfo to (GetWindowInfo winID)
set targetURL to item 1 of winInfo
end tell
tell application "Finder"
set saveFol to choose folder with prompt "ロケーションファイルを作成するフォルダを選択"
set saveFileName to text returned of (display dialog "保存するファイル名を入力" default answer "" with icon note)
make internet location file at saveFol to targetURL with properties {name:saveFileName}
end tell
499497:02/10/19 17:57 ID:6IhHUPqR
>>498
ありがとうございます! Finderでできるんですね。
けどこれをIEでなくiCabで使えないかと見様見真似で

tell application "iCab"
set targetURL to URL of window 1
end tell

と書いたんですが、実行するとIEの時とは違うアイコンのファイルが作られて
それをダブルクリックするとエラー-50というのがでてしまいます。
すみません、どうしたらいいでしょうか。
500名称未設定:02/10/19 18:13 ID:jZaGKOU+
>>499
iCabで使えるコマンドじゃないってことだろな。
てゆうかそもそもAppleScriptに対応してるの。
501名称未設定:02/10/19 18:19 ID:+HDnaiXW
X版のiCabじゃwindow 1が使えないみたい。
IEと同じように書いてみて。
502名称未設定:02/10/19 18:21 ID:U1fMAIDJ
>>499
iCabならこれでどう?

tell application "iCab"
set WID to first item of (ListWindows)
set targetURL to first item of (GetWindowInfo WID)
end tell
503497:02/10/19 19:06 ID:6IhHUPqR
>>501
>>502
498のスクリプトの"Internet Explorer" を"iCab"に変えただけのものも、
502のも試してみましたが、「“item 1 of {}”を取得できません。」という
エラーが出てしまいます。

504497:02/10/19 19:18 ID:6IhHUPqR
連続ですみません。

set WID to first item of (ListWindows)
ではなく、

set aList to ListWindows
set WID to first item of aList

にしたらうまく行きました。
レスくださった方々、ありがとうございます。

これでロケーションファイルを保存したフォルダをDockに置いて「お気に入り」みたく
使おうと思ってます。
505498:02/10/19 19:28 ID:s+PM5mkb
iCabだと
tell application "iCab"
set targetURL to URL
end tell
だけで,一番手前のウインドウのURLを取得できるみたい。
お試しを。
506名称未設定:02/10/19 19:38 ID:Ic1cOhaM
ブラウザ別のURLの取り方なら
>>146に書いたある
507名称未設定:02/10/19 19:45 ID:Of5zQtRL
>>506
だから…
508497:02/10/19 19:50 ID:6IhHUPqR
>>505
すごいシンプルになりますね。かっこいい。

すみません、前レスを訂正します。
URLの取得は>>498,>>502のどちらでもできました。
よく確かめずいい加減な書き込みをして申し訳ありません。
バージョンの違うiCabが二つHDにあって、ウインドウを開いてない方の
iCabにtellしてた為にエラーが出てしまったようです。
お騒がせしてすみませんでした。
509名称未設定:02/10/20 00:31 ID:ZFCNVpX6
Applescript Studio練習中の者です。
どなたか助けてください。
"Inteface Builder" でウインドウを Utility Window (Panel only) にしたら、
Miniaturize を オンにしてビルドしても、ウインドウの最小化ボタンが非アクティブなんですが、これは仕様でしょうか?
どうしても Panel を最小化できるようにしたいんですが。。
510sage:02/10/22 17:24 ID:FzKp1ma8
jaguarにてAppleScriptを使って
Finderの検索機能を使用するにはどうすればいいんですか?
どなたか回答お願いします。
511えろす:02/10/22 22:36 ID:cYS339qL
>>509
ちゃんとしたDocumentが見つけられませんでしんで、
検証してみましたが、仕様だと思います。
Utility Windowチェックを外すしかないんじゃないかな。
512498:02/10/23 00:14 ID:7sBKR4Ia
>>510
もしかしたらと思って用語説明見たけど載ってない。たぶん無理です。
513509:02/10/23 11:34 ID:S0Gc+YJk
>>511
わざわざ検証していただいてありがとうございます。
ああ、やっぱり仕様なんですね。
残念。
514えろす:02/10/23 23:50 ID:t6aGQQlL
>>510
このスレの流れで言うと、AppleScriptで出来ない場合コマンドでやれって
わけで、find コマンドを使えば良いかと

例えば
find . -name "*.jpg" -exec open {} ;
カレントディレクトリ以下のJPGファイルを開く

これをAppleScriptにdo shell script何かで埋め込みで、
exec以下のコマンドを変更すればそれなりに柔軟な処理が出来ます。
515名称未設定:02/10/24 14:06 ID:JuJ2mrZf
>>514
ほー。そんな方法もあるんだ!
UNIXと連携するなんてすごいなぁ。
そのASでコマンドを使う方法を日本語で(汗)解説してるサイト、ないかしら。
516へたれ:02/10/28 00:59 ID:JBSqXUfu
>>490
ものすごい遅レス、すんません。
書き間違いがあったとは。。修正したら問題なく動きました。
seqimgに関しては、これまでと同じように添付してやって下さい。
でも>>471さんの改良版の方が便利かも(汗

「AppleScript Programming for Mac OS X」、これですね。
http://www.socym.co.jp/pages/books_annai/pc_gengo.html#AppleScript
先日本屋で立ち読みしてきますた(w。AppleScript Studioに関して結構ページ割いてますね。
4200円と値は張るけど、いい感じでした。

>>515 こちらも遅レスですが
do shell scriptは引数の文字列をコマンドとして実行するだけなので、
各々のコマンドの使い方や、shellの基本的な知識が必要になるかもです。
かなり前にのせたサイトですが>>13辺りはどうないでしょうか?
517名称未設定:02/10/30 20:26 ID:hy4KarvN
保守あげしときます
518名称未設定:02/10/31 11:45 ID:vAH3Dpme
QuickTime Broadcasterを自動的に起動してブロードキャストするスクリプトの覚え書き。

tell application "QuickTime Broadcaster"
activate
start documents
end tell
519名称未設定:02/10/31 13:01 ID:2GH/0kXF
( ´_ゝ`)フーン
520えろす:02/11/01 01:12 ID:zj7tzoFU
>>516
こちらも遅レスすんまそ。仕事が忙しくなって、バグ取り進んでませんが、
もうちょっとしたら公開します。

最近は忙しくてエロ画像収集する暇もありません・・・
521名称未設定:02/11/05 09:34 ID:1ZNhfTcL
こんな高度なスレですみません…
DVストリーム書き出しを、
QuickTimePlayerでスクリプトを使ってできると聞き、
やみくもに作ってみたのですが、構文エラーが出るばかり…
超初心者なもので、指定されてもどう直せばいいのかも分かりません。
どなたか親切な方、ご教授願えれば幸いです。
現段階です↓

tell application "QuickTime Player"
export "開いてあるファイル名" to file "新ファイル名" as DV stream
end tell
522名称未設定:02/11/05 20:46 ID:W1S2TAtj
>>521
tell application "QuickTime Player"
activate
export movie 1 to (choose file name) as DV stream
end tell
523521:02/11/06 00:43 ID:WNCPF0Kf
>>522
ありがとうございました!
基本も何もすっ飛ばして試みたもので…
アプリが立ち上がっていればactivateいらないのかと思ってました^^;
カッコも間違ってたし。
あと、バカまるだし承知でおききしますが、
movie 1 の『1』ってのは何ですか?
目的のムービー開いた状態でないとエラーになったので、
ってことは、最前面にあるmovieを指すとか?
ちょっと面白くなってきたので、勉強してきます…
524521:02/11/06 05:35 ID:WNCPF0Kf
なんだかハマってしまい、ちょっと勉強して、
すごい単純な物ですが、自力で作ってちゃんと動かすこともできました。
縦に撮ったデジカメムービーを90°回転させて見るスクリプト。
今まで縦のものも横にできなかったので…

tell application "QuickTime Player"
activate
open (choose file)
tell movie 1 to rotate right
end tell
525522:02/11/06 22:31 ID:8HUS7ltX
>>521
activateはいらなかった。
開いてるファイルを書き出すって事だったんで、
最前面のムービーを確認するためって思ったんだけど、
無くても保存のダイアログと一緒に前面に出てくるね。
カッコはそれでいいよ、ただしパスを忘れずに。
まあchooseで選んだ方がいいと思うけど。

それと、開いてからじゃないと書き出せないみたいだからexportの前にopen。
もうわかると思うけどファイルを選んで書き出すなら、
2行目にopen (choose file)を入れてやればいい。
526521:02/11/06 23:13 ID:3Z9lxBN3
>>525
いろいろと親切にありがとうございます!
今までこんな便利な物を使わずに来たのが不思議です。
調子に乗って、いただいたスクリプトに手を加えて、
ドロップレットにしてみました。
取りあえずちゃんと動きます。
今度はifとかダイアログ使って、
これに他の機能を足してみようかなぁ。

set theItem to selection
on open theItem
tell application "QuickTime Player"
activate
open theItem
export movie 1 to (choose file name) as DV stream
end tell
end open
527名称未設定:02/11/07 14:35 ID:9vtfIM9d
AppleScliptで、モニタのジオメトリ調整のとこを自動化できないでしょうか?
盆台使ってるのですが10.2のジオメトリ初期化問題に閉口しています。
なおらないのなら、せめて、ベストな状態を記録しておいて
起動時にAppleScriptで自動で一発で補正したいな、と思って。
528名称未設定:02/11/07 22:13 ID:nvTExOJ6
クリップボード内のテキストをgooの辞典で検索するスクリプトを書いたのですが、
日本語が文字化けしてしまいます。
同じ様なスクリプトでgoogleで検索する物はきちんと動きます。
googleの文字コードはShift_JIS、gooの文字コードはEUCなので
多分文字コードの問題だと思うのですが、どう対処すればいいのかわかりません。
どなたか教えて下さい。
スクリプトは以下のとおりです。

--gooの国語辞典
set ctext to the clipboard as string
set jitenn to "http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?sw=2&MT="
open location (jitenn & ctext)
529名称未設定:02/11/08 23:07 ID:zU1DGqCm
>>527
iMac使ったことないんだけど
ジオメトリ調整をOSでソフトウェア的に処理してんの?
10.2のモニタ調整にはそういう項目は見当たらんが
モニタをハードウェア的に直接いじってるなら
AppleScriptでの制御は無理かと
>>528
open locationじゃなくてブラウザに命令すると
うまくいきましたけど、ダメ?
set ctext to the clipboard as string
set jitenn to "http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?sw=2&MT="
tell application "Internet Explorer" to OpenURL (jitenn & ctext)
530527:02/11/09 12:01 ID:/yc8HkZS
>>529
レスさんくすです。
そうなんですよ。iMacシリーズはジオメトリ調整はソフトでいじるんです。
10.2も、imacだと「モニタ調整」にジオメトリ項目が出現します。

で、初代iMacシリーズのみ、10.2環境では再起動するたびに、初期状態に
戻ってしまう、とうバグがあるんです。で、そのあと、OS9を起動しても
もう、ジオメトリは初期のまま、という。

でも、やっぱ無理ですよね。どうも有り難うございました。
531528:02/11/10 00:20 ID:8w3rZo/m
>>529
実はProject Builderで検索と各種辞典をまとめたアプリ作ろうと思って、
ポータルパレットのAppleScript版みたいなのなんだけど、
それに使うスクリプトのテストだったんですよ。
それで、ブラウザを指定しなくてもいい書き方にしたかったんです。
それってやっぱり無理ですかね。
とりあえず、ブラウザに命令する事にしてブラウザを選べるようにします。
レスありがとうございました。
532名称未設定:02/11/17 01:04 ID:0h2IURl+
保守age
533名称未設定:02/11/18 00:18 ID:achnDWAu
>530
確かに調整はソフトウェアで行うが、調整用のコマンドがないのでScriptは不可。
534名称未設定:02/11/18 00:28 ID:+H4bU2dA
>>530
ジオメトリ調整の初期設定ファイルが存在するなら
ベストな状態のものと入れ替えてモニタ調整してるアプリを再起動させる
とこまでのスクリプトをログイン項目に入れといたらどうよ
535名称未設定:02/11/22 00:03 ID:M0Vw29+Q
保全 
536初心者:02/11/24 13:51 ID:RKEvKUTz
今日はじめてAppleScriptを触っているのですが、
新規TEXTファイルをDesktopに作成して
その中に文字列(例えば"abcde")を書き込みたいのですが
よく分からなくてパニくっています。
どなたか簡単にで結構ですので
アドバイス頂きたく思います。
以上、よろしくお願い致します。
537初心者:02/11/24 13:52 ID:RKEvKUTz
失礼しました、環境はOS10.2です。
538名称未設定:02/11/24 14:42 ID:svkO3Ch4
>>536
こんな感じ

set filePath to (choose file name)
set filePath to filePath as text
set thisData to "abcde"
try
set openFile to open for access file filePath with write permission
write thisData to openFile
close access openFile
on error
close access openFile
end try
539名称未設定:02/11/24 15:58 ID:FFMN0kmf
>>538
新規TEXTファイルをDesktopに作成して
新規TEXTファイルをDesktopに作成して
新規TEXTファイルをDesktopに作成して
新規TEXTファイルをDesktopに作成して
新規TEXTファイルをDesktopに作成して
新規TEXTファイルをDesktopに作成して
新規TEXTファイルをDesktopに作成して
新規TEXTファイルをDesktopに作成して
新規TEXTファイルをDesktopに作成して
新規TEXTファイルをDesktopに作成して
540名称未設定:02/11/24 16:19 ID:X5QbrnI9
>>539
ハア?試してみたのか?
一行目でデスクトップ指定すりゃ
テキストファイル作るだろう?
541名称未設定:02/11/24 17:18 ID:gJbOCtj8
set theData to "abcde"
tell application "Finder" to set theFile to (make file) as alias
try
open for access theFile with write permission
write theData to theFile
close access theFile
on error
close access theFile
end try

>>536が躓いたのはFinderに作らせたファイルはFinder形式の参照が返ってくるので
クラス変換してやらにゃいかん、というあたりだと思われ。
542名称未設定:02/11/27 11:36 ID:vT31IarX
system osaxが、バージョンアップしてますた。
ttp://www.bekkoame.ne.jp/~iimori/sw/systemOSAX.html

こんな事が可能になってますた。凄いかも。
set fileList to (fromPosixPath (system "find /some/where -name '*.jpg' -type f")) as list
repeat with aFile in fileList
色々と処理
end repeat

とかヒアドキュメントみたいにこんな事も。
set aCmd to "
for aFile in `find /some/where -name '*. jpeg' -type f`
do
mv "$aFile" `echo "$aFile" | sed 's/. jpeg$/. jpg/'`
done"
system aCmd with EOLisCR
543名称未設定:02/11/27 20:17 ID:OBYeoc+b
わくわくするぜ!!
漏れもAppleScript使いたくなってきた。
544名称未設定:02/12/03 17:20 ID:Fl5EWXZ8
ほしゅ
545名称未設定:02/12/04 02:52 ID:KO/1J/zw
set theString to "Hello, world!"
set theOutputName to "my new file.txt"
set theOutputPosix to quoted form of ((POSIX path of (path to desktop)) & theOutputName)
do shell script "echo " & theString & " > " & theOutputPosix & "; open " & theOutputPosix
546名称未設定:02/12/05 19:41 ID:I8TjsxzP
あるフォルダー(例えば「Document」)内の
サブフォルダーに含まれていないファイルを
任意のフォルダー(例えば「未分類」とか)に
移動するスクリプトってどう書けばいいですか?

拡張子で判別するスクリプトを見て見たりしたのですが、
「フォルダーに入っていないファイル」の判別方法がわかりません。
どなたかお助けください。
547名称未設定:02/12/05 21:20 ID:wDpPKKVZ
>>546

tell application "Finder"
activate
set theFilelist to every file of (choose folder with prompt "「あるフォルダ」を選んで下さい。")
set theMove2folder to (choose folder with prompt "「任意のフォルダ」を選んで下さい。")
repeat with aFile in theFilelist
move aFile to theMove2folder
end repeat
end tell

とかじゃなくて、もっと難しいこと考えてるの?
548名称未設定:02/12/05 23:36 ID:wDpPKKVZ
set theFromFolderPosix to quoted form of POSIX path of (choose folder with prompt "From")
set theToFolderPosix to quoted form of POSIX path of (choose folder with prompt "To")
do shell script ツ
"for aFile in " & theFromFolderPosix & "*; " & ツ
"do; " & ツ
"if [ -f \"$aFile\" ]; then; " & ツ
"mv \"$aFile\" " & theToFolderPosix & "; " & ツ
"fi; " & ツ
"done"

てゆうのも。
549546:02/12/06 04:42 ID:hydmbxGh
ありがとうございます。
基礎的すぎてWebで調べても分からなかったので。

共用サーバにOS X機を使ってるのですが
個人用フォルダに入れずに、勝手に散らかす人がいるので
crontabで毎日強制的かつ自動でフォルダにまとめたかったのです

Sharedフォルダの中に「押し入れ」というフォルダを作り
こんなかんじでやってみて動きました。

ひょっとして無駄の多いスクリプトですか?

tell application "Finder"
activate
set theFilelist to every file of folder "desktop" of folder "tab" of folder "Users"
set theMove2folder to folder "押し入れ" of folder "desktop" of folder "tab" of folder "Users"
repeat with aFile in theFilelist
move aFile to theMove2folder
end repeat
end tell
550547:02/12/06 16:01 ID:NSb46Sf3
>ひょっとして無駄の多いスクリプトですか?
はい。私がヘタレでした。>>547は下が正解です。

set theFromFolder to choose folder with prompt "From"
set theToFolder to choose folder with prompt "To"
tell application "Finder" to move every file of theFromFolder to theToFolder

他のアプリやAppleScript内で処理する場合には
リストに入れてループさせることが多いので、そう書いてしまいました。
(そのリストの中にはFinder形式の参照が入っているので、
その場合はas alias listでクラス変換する必要があります。)

Finderへのtell文の外側でパスを指定する場合は、通常の形で大丈夫だと思います。

ども、お騒がせでした。
551名称未設定:02/12/08 14:26 ID:pCxTaddv
>>548
set theFromFolderPosix to quoted form of POSIX path of (choose folder with prompt "From")
set theToFolderPosix to quoted form of POSIX path of (choose folder with prompt "To")
set the notFolder to "Document"
do shell script ツ


find theFromFolderPosix \! -name $notFolder -exec mv {} theToFolderPosix \;

するのは?
552名称未設定:02/12/10 18:28 ID:YZMf7tvn
applescript studioでアプリ作成中なのですが、
あるボタンを押すとポップアップボタンにメニュー項目を追加する、
という動作をさせようとしています。
メニュー項目に追加するまではいいのですが、(あちこち検索して
方法見つけました) 一旦アプリを終了して次回起動させた時にも
前回追加させた項目を表示させたいのですが、
定番なやり方ってどうするんでしょか。。。
save menu item of ...
とかではダメなんすかね。やみくもに色々試したけどやっぱうまくいかず。
当方のスクリプティングの腕前は、永遠に初級って感じだす。。

553名称未設定:02/12/12 14:31 ID:zBnG7dDs
applescript でドロップレットを作りたくて調べてます。
# 今月号のUNIX USER の記事がきっかけでで初めてapplescript をさわってます。

ドロップするとそのファイルを/Users/hoge/Desktop/update に移してくれて
unix のshell script /Users/hoge/bin/sync_to_unix を実行。
また、ダブルクリックだけだと単にsync_to_unix を実行してくれる
ようなのが作りたいです。sync_to_unix の内容は、

#!/bin/tcsh
/sw/bin/rsync -auz --delete --exclude "newton/" ¥
-e ssh hoga@remotehost:tmp/ ~/Desktop/tmp
/sw/bin/rsync -auz --delete -e ssh ~/Desktop/update/ ¥
hoga@remotehost:tmp/mac

です。ssh のpassphrase はログイン時にssh-agent を使って入力済みと
仮定してます。

これができるとネットワーク上のunix マシンとファイルのやり取りが
簡単になりそうなんですが。。今のところ

on open names
tell application "Finder"
move file ... to ...
end tell
do shell script "/Users/hoge/bin/sync_to_unix
end open

こんな感じで、完成にはほどとおいです。
554名称未設定:02/12/12 14:36 ID:zBnG7dDs
>>553
自己レス

shell script の二行目は
/sw/bin/rsync -auz --delete --exclude "mac/" ¥

でした。
555名称未設定:02/12/12 15:54 ID:JNMas/uu
こんな感じ?エラー処理なんかなんにもやってないけど。

on run
my SyncScript()
end run

on open dropFiles
tell application "Finder" to move dropFiles to folder "update" of desktop
my SyncScript()
end open

on SyncScript()
do shell script "Users/hoge/bin/sync_to_unix"
end SyncScript
556名称未設定:02/12/13 11:18 ID:62DDurwm
>>555
おお、ありがとうございます。こういうのが書きたかったんです。

しかし基本的な作り方がわかってないのかうまく動かない。。
起動するだけで何も起こらないです。drop もだめ。

Project builder の新規プロジェクトで
Application -> applescript droplet
とプロジェクトを作って
Scriptsフォルダのapplescript を編集してビルドしました。
これじゃだめなのかな?

#スクリプトエディタで実行させると確かに動いてます。
#(drop は確認できませんが)

ググってみます。
とりあえず御返事まで。
557554:02/12/13 11:44 ID:62DDurwm
>>555
あっさりわかりました。
我ながら強烈な素人っぷりがはずかしーです。

解決法。
スクリプトエディタで
別名で保存 -> アプリケーション

これでばっちり動きました。

エラー処理というのはping して反応が無ければ「route がないよ」ってな
ウィンドウを出す、ということでしょうか?
それともapplescript のお約束でこういう処理を入れといた方がいいよ、という
のがあるんでしょうか。そういうのがあれば今後のために教えてもらえると
うれしいです。
558555:02/12/13 22:17 ID:WYUU5Zo3
>>557
>エラー処理というのはping して反応が無ければ「route がないよ」ってな
>ウィンドウを出す、ということでしょうか?

です。555のスクリプトの場合ドロップしたファイルと同名のファイルがあった場合、
そこで処理がとまります。またdo shell scriptを実行すると、stdoutに吐き出された
文字列のみapplescriptの方で所得出来ます。なのでshell scriptの方で返り値を設定
し、其の値でapplescriptで処理やダイアログを変更するには多少工夫が必要になります。

具体的にはshell scriptの方で echo 1とかしておいて、applescriptの方で
set ex_status to do shell script "hoge/bin/myscript"

とするとか、$?を使って
set ex_status to do shell script "/usr/bin/hogehoge >/dev/null;echo $?"

といった感じです。
559555:02/12/13 22:32 ID:WYUU5Zo3
applescriptのお約束を書くの忘れてました。
if 構文を使って分岐ってのは、他の言語同様良く使うと思います。
特有ってのはtry 構文かな。この辺りに詳しく書かれてます。
http://www.macos.com/octopus/LetsAS/cancel.html
560名称未設定:02/12/14 01:17 ID:zT+5dtm4
>>552
> 前回追加させた項目を表示させたいのですが、

基本的にそういう命令はないので、
1.終了時に変数(追加されたメニュー項目)を初期設定ファイルに書き込む
2.起動時に初期設定ファイルから変数に代入
3.起動時に変数を読み込んでメニューに追加
ってな処理をやらねばならんです。1と2は命令があったはず。
561552:02/12/14 14:57 ID:eiyn7BEJ
560さん、レスありがとうござります。

>基本的にそういう命令はないので、

あう。やはりそうなのですか。
ぢつはOS9でFaceSpan使って作ったアプリのOSX版を作ろうとしてまして
FaceSpanだと、正しい使い方かどうかは別として 「save window "hoge"」
で更新出来ちゃってたんですよね。
で、ASstudioの方でも何かサラッと書く方法があるのかと思いまして。
素直に初期設定ファイルを作る方向で考えます。
562えろす:02/12/14 22:16 ID:h77Xdbuv
久しぶりにエロスクリプト
Real movie を連続再生のドロップレット

on open fileList
set LengthList to {}
set counter to 0
repeat with aFile in fileList
tell application "RealOne Player"
open aFile
set end of LengthList to (GetLength) / 1000
end tell
end repeat
tell application "RealOne Player"
repeat with aFile in fileList
set counter to counter + 1
activate
open aFile
delay (item counter of LengthList as number)
end repeat
end tell
end open
563えろす:02/12/14 22:49 ID:h77Xdbuv
>>562
自己レス。sortを忘れてました・・と思ったら、sortが未実装でした。
しょうがないので、reverseしてみました。
ドロップレットにドロップしたファイルの並び順って、名前順降順で
固定なのかな?よくわからん仕様ですな。

on open fileList
set LengthList to {}
set SortedList to {}
set counter to 0
set fileList to reverse of fileList
repeat with aFile in fileList
tell application "RealOne Player"
open aFile
set end of LengthList to (GetLength) / 1000
end tell
end repeat
tell application "RealOne Player"
repeat with aFile in fileList
set counter to counter + 1
activate
open aFile
delay (item counter of LengthList as number)
end repeat
end tell
end open
564初心者564:02/12/15 04:08 ID:gt4zrCYT
単純にこれじゃだめ?

tell application "Finder"
activate
set my_folder to (choose folder)
open files of my_folder
end tell

勝手に一個ずつファイルを開いていってくれるよ。
でもね、Finderから複数選択で開くと順番めちゃくちゃの時ある。
AppleScript経由だとうまく行く。
やってることは同じですよね?なんでだろう?
565名称未設定:02/12/16 01:10 ID:0aKHP3Sf
漏れも便乗して、Windows Mediaの連続再生。

property wm_List : {""}

on open file_List
tell application "Finder"
repeat with a_File in file_List
set a_File to "<entry><ref href=\"file://" & a_File & "\"/></entry>"
set end of wm_List to a_File
end repeat
end tell
end open
566565の続き:02/12/16 01:11 ID:0aKHP3Sf
on run
tell application "Finder"
set the_button to button returned of (display dialog "asxファイルを作ってもいいんだな?" buttons {"キャンセル", "クリア", "いいよ"} default button 3)
if the_button is "いいよ" then
set old_Delim to AppleScript's text item delimiters
set AppleScript's text item delimiters to return
set the_text to {"<asx version=\"3.0\">", wm_List as string, "</asx>"}
set the_text to the_text as string
set AppleScript's text item delimiters to old_Delim
set asx_file to choose file name
set the_file to open for access asx_file with write permission
write the_text to the_file
close access the_file
set creator type of asx_file to "Ms01"
else if the_button is "クリア" then
set wm_List to {""}
end if
end tell
end run
567565:02/12/16 01:14 ID:0aKHP3Sf
ファイルをひとつづつドロップするとドロップレットが順番を憶える。
一括してドロップしてもOKっす。
ダブルクリックでasxとして書き出し。
ramやsmilにも応用できる。
バグ対策としてFinderにtellしたけど、必要無ければ省いちゃって。
568565:02/12/16 01:17 ID:0aKHP3Sf
OS9.04以下の場合は566のchoose file nameをnew fileに書き換えてね。
569554:02/12/16 23:00 ID:ynrH/1mF
>>558 ありがとうございます。
OSX についているping コマンドではうまくいかないですね。
-w オプションが使えないし、反応があっても無くても終了ステータスは
0 を返すみたいです。(こっちは致命的)
# man には-w オプションについての記述があります。

なんか行き詰まった感じなのでネットワークについてのエラー処理は
あきらめます。ブラウザー立ち上げる段階で気付くわけですし。

同名のファイルをドロップしたときのエラー処理はできそうなので
できたら記念にここに張り付けようかと。
570名称未設定:02/12/17 01:31 ID:utWnGrcA
エロage
571名称未設定:02/12/18 14:53 ID:ClWyRgK4
へたれさんが>>246で作った起動ディスクを変更できるスクリプトなんでつが、
OSX10.2.2ではうまく動かないです。
「Finder?なにそれ?」みたいなエラーがでます。
なんとかならんものでしょうか、、おながいします。
572名称未設定:02/12/18 18:11 ID:kyiMQ85x
>>571
下から10行目あたりのFinderを"Finder"に。
573名称未設定:02/12/20 21:25 ID:6chVJY3/
ADCで落とした Dec2002 DeveloperTools に ScriptEditor(v2.0) が同梱されてるんだけど既出?
Cocoaベースでイイ感じ。スクリプタブルだし。
574名称未設定:02/12/20 21:53 ID:ae0wx+b3
おっマジで?
やっとスクリプタブルになったんか
575名称未設定:02/12/20 22:39 ID:AwIkRF+k
eo64つかってます
送受信しないと3分で切断されるので
ping打ってます
ただ同一IPだと5時間で切断されます
AppleScriptでインターネット接続とpingの
書き換えを一定時間で自動化する事は
可能なのでしょうか?
576名称未設定:02/12/20 23:20 ID:eNOOLtll
>>573
betaだけどいいね。やーーーっと検索とマルチアンドゥができるようになった。
今まで開発ツールで検索ができないなんて、呆れて文句も出なかったよ。。

他にも UI element というのが、準備されている様子。
AppleScriptからメニューやキーイベントを操作できる。
577名称未設定:02/12/21 05:52 ID:vpRf/kLz
>>575
> 送受信しないと3分で切断されるので
> ping打ってます

これはcronにでも仕込んどけばいいかと。

> ただ同一IPだと5時間で切断されます

こっちはよく分からないけど、システム環境設定→ネットワークの
オプションかなんかで切断時、送受信の要求があったら自動で接続
するように出来ないかな。
578名称未設定:02/12/21 15:35 ID:xXHMzR+o
do chell scriptで同じウィンドウにコマンドを二連発する方法ってありますか?
例えば、cd なんたら〜 で作業場所を変更して、そのあとにコマンドを実行する、
というのをしたいんです。
もし良い方法があればぜひ!
579名称未設定:02/12/21 15:38 ID:xXHMzR+o
>578
do chell(shell) script = ×

do script with command の間違いでした、すみません。
580名称未設定:02/12/21 16:28 ID:ICJ8ig0C
;
581名称未設定:02/12/22 03:14 ID:WLV6d0Vk
Apple から Script Editor 2.0 Beta が出ています。

http://www.apple.com/applescript/script_editor/

うちの環境 (Mac OS X 10.2.3) だと string 内の " (0x34) が
(0x92) でエスケイプできていないみたいなんですけど、
こんな現象が出ている人はいますか ?
582名称未設定:02/12/25 15:18 ID:zx3bUd8S
出てますねえ。 >editor
「素人にも簡単に」的に書かれてるけど実際はどうなんでしょ?

今までとそんなに変わらないのかな?
583名称未設定:02/12/25 16:37 ID:Hk33jFfq
細かい変更はあるんだけど、基本的に
Cocoaで書き直しただけって考えていいと思う。

漏れはOS 8の頃からドラッグ&ドロップが出来なかったりするのが
気になってたからそれだけでも十分だけど。
584名称未設定:02/12/26 03:04 ID:LIBE2Zs0
検索/置換とマルチ undo がうれしい。

# ごくごく基本的なことがやっと!
585名称未設定:02/12/29 07:09 ID:B7bfAN+n
こんなん作ってみました
ttp://he-com.hp.infoseek.co.jp/hetimaosaxopener/
586名称未設定:02/12/29 11:14 ID:Bt55R4+2
>>585
(・∀・)イイ!!
いちいちドロップしなくて済むようになたよー。
587名称未設定:02/12/29 17:29 ID:CMZ1gqxS
>>585
いただきました
588名称未設定:03/01/03 00:03 ID:CH6jZi6d
新年の保守あげ
589初心者ですが:03/01/05 16:53 ID:Ty7oez+a
スクリプト全くわからないものです。お助け下さい。
最近ウィルスアラートメールが多いのです。
でENTOURAGEでルールのアクション機能でアップルスクリプトを使い、
サーバーからメールを削除(機能として標準でついている)の動作を
させたいのです。
このサーバーからメールを削除させる動作の部分のスクリプトを教えて下さい。
馬鹿だって笑わないで後生だから教えてください。
590名称未設定:03/01/05 17:55 ID:XG8pGPhc
>>589
Script EditorでEntourageの用語説明見た?
見ないとどっちみち作れないと思うけど。

そのアカウントはメールをサーバーに残す設定で
ローカルのメールを消すとサーバーの側も消すように設定してるの?
だったらそのメールを特定してdeleteするだけでいいような気がするんだけど
細かくはわかんない。
現在のあなたの状況とやりたい事もいまいちわかんないし。

ヘッダだけチェックしてメールを消せるソフトとかあるから
そういうのを探した上でそのソフトの便利な運用法を考えるって手もあるのでは。
591名称未設定:03/01/07 10:32 ID:e4fcFFmS
>>590
ありがとうございました。
奥が深いですね。マニュアルも見直して
なんとかがんばってみます。
592名称未設定:03/01/07 21:04 ID:USwN1e9I
なんで初心者の人ってこういう時に追加の状況説明せずに
差し伸べかけた手を拒否するのかな・・・。
593名称未設定:03/01/11 01:31 ID:VZozySCP
アプレットにドロップされたフォルダの中のフォルダを開きたいんですけど、
フォルダの中のファイルとフォルダを判別にする方法を教えてもらえませんか?
もう何時間もやってるんですけど、うまくいかないんですー。

on open dropFolder
tell application "Finder"
set the myList to list folder dropFolder without invisibles
set dropFolder to dropFolder as string
repeat with i from 1 to number of items in the myList
set iItem to item i of the myList
set iAlias to (dropFolder & iItem) as alias
set iInfo to info for iAlias
if folder of iInfo is true then
--if folder of iAlias is true then
--if folder iAlias exists then
--if folder (org & iItem) exists then
open iAlias
end if
end repeat
end tell
end open
594名称未設定:03/01/11 02:09 ID:CXRmQvlr
>>593
第1階層だけでいいの?
on open drpItems
tell application "Finder"
set selection to drpItems
tell every folder of every folder of selection
open
end tell
end tell
end open
595名称未設定:03/01/11 03:05 ID:onv+QQFk
>>593
解決法としては>>594氏のいう通りevery folderがいいと思う
でも、>>593のスクリプトも間違ってないはずなので
ちょっと調べてみたんだけど
どうも、list folder ~ without invisiblesの誤操作が原因みたい

set theFolder to choose folder
list folder theFolder without invisibles

↑なぜか不可視ファイルの".FBCIndex"を拾ってる、バグだと思う
で、finderからは見えないのでエラーになると
だから以下のようにfinderのレイヤーから外してやると正常に動いたよ

on open dropFolder
set the myList to list folder dropFolder without invisibles
set dropFolder to dropFolder as string
repeat with i from 1 to number of items in the myList
set iItem to item i of the myList
set iAlias to (dropFolder & iItem) as alias
set iInfo to info for iAlias
if folder of iInfo is true then
tell application "Finder" to open iAlias
end if
end repeat
end open
596593:03/01/11 04:13 ID:VZozySCP
>>594,595
情報感謝です♪
おかげでドラッグ&ドロップしたフォルダの下をひたすら開いていって、
ウインドウ位置を調整するスクリプトできました。
ただメモリが少ないと動作厳しいかも・・・。

on open theList
tell application "Finder"
set oBounds to {0, 0, 0, 0}
repeat with iItem in theList
open iItem
set oBounds to bounds of window of iItem
my setPositionWindow(0, iItem, oBounds)
close window of iItem
end repeat
end tell
end open
--続きます
597593:03/01/11 04:14 ID:VZozySCP
--続きです
on setPositionWindow(a, org, oBounds)
tell application "Finder"
set pos to {(item 1 of oBounds) + (-3 * a), (item 2 of oBounds) + (21 * a)}
try
set bounds of container window of org to {200, 200, 200, 200}
set zoomed of container window of org to true
set position of container window of org to pos
--set current view of container window of org to icon view
--set icon size of icon view options of container window of org to small
--set arrangement of icon view options of container window of org to snap to grid
end try

set the myList to every folder of org
repeat with i from 1 to number of items in the myList
set iItem to item i of the myList
open iItem
my setPositionWindow(a + 1, iItem, oBounds)
close window of iItem
end repeat
end tell
end setPositionWindow
598593:03/01/11 06:10 ID:VZozySCP
ウインドウを並べるだけじゃなく、ウインドウ内のアイテムの数などに応じて
アイコン表示かリスト表示か自動的に切り替えて、
さらにウインドウサイズの最適化とかしようと思っているのですが、
ファイルとかを名前でソートする方法ありませんか?
Clean upコマンドがどうやっても使えないんですよー。
599名称未設定:03/01/12 01:14 ID:gyIgAiw+
safari の現在一番前にあるウィンドウのURLを取得するのことはできないのでしょうかね。
set curentURL to URL of window 1
じゃダメだったよ。
600名称未設定:03/01/12 01:42 ID:dnIYy4BZ
>>599
URL of document 1 とか URL of document of window 1
601名称未設定:03/01/12 02:26 ID:gyIgAiw+
>>600
Thaxco!
602名称未設定:03/01/12 12:22 ID:iQOfdgYF
>578
do shell script"command1;command2;command3;..."
でおけー。
Terminalを使う必要は無い。
603名称未設定:03/01/12 12:33 ID:iQOfdgYF
あ、ScriptEditor2.0βだが、<<data 0x0000>>の解釈が
おかしくないか?
コンパイルする時はメモでないと通らなくて、コンパイルすると<<>>になる。
#1.9だとメモではコンパイル出来ない
ここまではいいんだが(よくないけど)、そのまま他のところを編集して
再コンパイルすると<<>>になったところでコンパイルエラーが出る。
なめてんのか、Apple。
ということで消した。あ、フィードバックしなきゃ。
なお、<<>>は本当は1文字な(CocoMonarでURLエンコードできねえ、って怒られた)。
わかんない人のために入れ方書くとU.S.モードでoption+\(shift+option+\)な。
604名称未設定:03/01/12 22:52 ID:t1dIBrEu
>603
詳細レポートさんくすこ。自分が使う時とまどわないで済みそうです。
605名称未設定:03/01/13 00:02 ID:F7g7/EA+
>581
それは前から出てるな。PBでもあった気がする。
\(ascii character 92)
ではなく
(ascii character 128)
でないとエスケープ出来ない時がある(違いわかんねえだろうな.....)
んで、おいらはしょうがないので
prop quot:ascii character 34
<snip>
do shell script ("perl -ne'hoge1;hoge2;print "& quot &"$hoge"& quot ";hoge3...")
とかやって回避してたよ(泣)
あと、do shell scriptに渡す時も92じゃなく128でないと
エラーになるみたいだし。
606名称未設定:03/01/13 00:07 ID:/9teJbo7
CocoaーJavaからAppleScript命令、もしくはアプリを呼び出すことは可能ですか。
可能だとした場合、たとえばAppleScriptの実行結果をStringだとかObject
だとかでJava側で取得することは可能ですか。できるようでしたら、やり方を
どうか教えて下さい。これが出来る、出来ないで漏れの明日も変わります。
Objective-cで同様のことはたぶん出来ると思うのですが、漏れはJavaがいいです。
(つうか、Objective-cが出来ない罠)
607名称未設定:03/01/13 03:27 ID:BEVfeaNT
ClassicMenuにシステム終了と再起動を入れたいのですが
アップルスクリプトを使えばいいのかなと思います

その方法、もしくはosxでのAsの説明があるサイトを
教えて下さい
608えろす:03/01/13 03:54 ID:FBrHkN/J
ASD ウプグレードしました。
http://pc.2ch.net/test/read.cgi/mac/1010546884/l50
Opera、Chimeraに対応。バグ取り、>>484-485の修正なんかです。
バグレポ待ってます。あとコマンドも良いのがあったら教えてください。
609名称未設定:03/01/13 04:36 ID:pDwoCyeA
>608
おつかれさまでし。
どこにあるですか?
610えろす:03/01/13 12:05 ID:dMPjHh7K
>>609
http://www.vector.co.jp/soft/mac/net/se268499.html
リンク張り間違えしました。ものすごく恥ずかしい・・・。
611名称未設定:03/01/13 17:52 ID:OC+a3X3O
OSX10.2.3環境です、スクリプトエディタで
set cmd_line to "cd ~Library/Application Support/"を記述したいのですが、
Library/Application Support/ の部分が構文確認でクリアされないのです。
Terminalでは Library/Application Support /で使用できるのですが、
スクリプトエディタにコピーすると、Library/Application\ Support/
となり構文確認では"メ""モ"...とOKしてくれません。
いろいろとやったのですが困っています。何か方法があるのでしょうか?
先生方ご指導お願いします。
612611:03/01/13 17:57 ID:OC+a3X3O
>>611の....
>Terminalでは Library/Application?Support /で使用できるのですが
 ?→ バックスラッシュです。
>スクリプトエディタにコピーすると、Library/Application Support/
?→ 円マークになります。
613名称未設定:03/01/13 18:28 ID:b5Drm2ux
ScriptEditor2.0ならoption+¥、1.9なら入力モードをU.S.で¥で
バックスラッシュになるのかな?(うちではそうなるみたい)
入力モード変えたりoption押しながらしたり試してたらそのうち出るか?
614611:03/01/13 23:09 ID:inNPAQ/D
>>613
ありがとうございます、バックスラッシュは解決いたしました。(´∀`)
が、その横のスペース?が引っかかります。
--------------------------------------------------
   “メ"モ” と書くべきところに “unknown
  token” と書かれています。
--------------------------------------------------
と出てしまいます、何故なんでしょう?ちなみにVer.1.9ですが
“メ"モ”を入れてみたんですが駄目です。
今日は眠れそうにもないです...
615613:03/01/13 23:43 ID:b5Drm2ux
>>614
あり、うちはコンパイル通ったけどな〜
変なヌル文字が紛れ込んでるのかも。
数文字選択して打ち直してみませう。

チルダパスじゃなく、フルパス指定でもいいなら
"cd '/Users/お前様/Library/Application Support'"
てシングルクオートでくくれば大丈夫だす。
616611:03/01/13 23:56 ID:acUVXknu
>>615さん
ありがとうございます。
チルダパスではなく、シングルクオートで区切ったら通り抜けられました!
これで今日は眠れそうです(w
617名称未設定:03/01/14 14:38 ID:gbdil1H8
>>606
できます。

String source;
/**
*ここで変数sourceにAppleScriptの中身を読み込む
*/
NSAppleScript script = new NSAppleScript(source);
NSAppleEventDescriptor aed = script.execute(null);

String result = aed.stringValue();//これがAppleScriptの実行結果

ちなみに細かいことはNSAppleScriptのドキュメントを参照

もしかしたらOS 10.1とかではだめだったかも(未確認)
618617:03/01/14 14:39 ID:gbdil1H8
もしかしてスレ違いなのかな?
だとしたらごめん。
619名称未設定:03/01/15 23:28 ID:Pv1s5w08
>>618
そんなことないと思うよ
620617:03/01/16 01:28 ID:Kn5yONJG
>>619
ありがと。
でも明日が変わるぐらい大事なことを教えてあげたのに
何にも音沙汰なし。
やるせないなぁ。
621名称未設定:03/01/16 16:04 ID:ZcHfI2k3
>620
大丈夫、606は見てなくても
オレみたいな勉強したい初心者が
小躍りして喜んでるから。
これからもよろしく。
622607:03/01/16 16:15 ID:LrY5qEcV
再度質問です

システム終了と再起動、できればログアウトも、それぞれの
アイコンを作ってClassic Menuに入れたいのですが
AppleScriptで作れませんか?

難しいのであれば、Classic Menu以外のユーティリティとか
模索します。
ちなみに、他人に使わせるためのMacです。
623名称未設定:03/01/16 16:30 ID:arqvvLL0
>>622
あまりにも簡単っぽいのでみんな内心「調べろよ・・」とか思ってスルーしたかも(w
とか言いつつOS9の俺には正確なところが言えないのですが

--システム終了
tell app "Finder"
shut down
end tell

--再起動
tell app "Finder"
restatr
end tell

ログアウトはちょっとわからんす。
624名称未設定:03/01/16 16:32 ID:arqvvLL0
うわっ、restatrとか書いてる。。当然restartです。逝ってきます。。
625622:03/01/16 19:39 ID:kginiOYC
>>623
有難う、多謝!
「実行専用で保存」「アプリケーション」で完動です
自分なりに本みたり色々したんですが、お恥ずかし。

あとは、アップルメニューの順位づけを思い出して・・。
626名称未設定:03/01/16 22:53 ID:Obqu3lND
IE(5.2.2+OS X10.15)なんですが、
あるページをダウンロードし終わったかどうかのステータスを得る事って、
do scriptで出来るんでしょうか。
CGIの用語を調べてみたんですが、ここら辺の知識がほとんどないため
わかりませんでした…
627名称未設定:03/01/16 23:30 ID:arqvvLL0
>>626
CGIはたぶん関係ないっしょ。。
do scriptはJavaScriptを実行させるコマンドだよね?

OS 9ならMenu Events使って「中止」メニューがアクティブかどうか調べる事で
頁のレンダリング終わってるかどうかチェックできると思う。
OS Xではわからんす。
628626:03/01/16 23:39 ID:Obqu3lND
>627
そうです、JavaScriptでした。。
書き込んでから気付きました。も一回調べてみます。
ダメなら9でやる事も考えてみます、ありがとう。
629名称未設定:03/01/18 17:58 ID:kyVoNr2Y
どなたか、システム環境設定の「インターネット」で設定した「ホームページ」のURLをAppleScriptで得る方法を教えてください!
630名称未設定:03/01/19 21:22 ID:9SPS1jK6
>>629
かなり悩んで、思いっきり力技で実現してみますた。

set home_string to do shell script "defaults read com.apple.internetconfig|sed -n '/^ *WWW/p'"
set old_delimiter to AppleScript's text item delimiters
set AppleScript's text item delimiters to "\""
set homepage to text item 4 of home_string
set AppleScript's text item delimiters to old_delimiter
display dialog homepage

コマンドラインからだと1行でとれるんだけど、sedやawkの"や(なんかが
AppleScriptだとおかしくなるんでこんな方法しか思い付かなかった。
631629:03/01/19 22:53 ID:kfXFdg9A
>>630
わぁ!ありがとうございます!
悩んでいただいてすみません。。
com.apple.internetconfig内のURLを含んだ文字列を取得してるんですね。なるほど〜
コマンドラインはよく解らないけど非常に参考になりました!
ありがとうございました!
632名称未設定:03/01/20 01:02 ID:JhqmmE89
>>630
の方法だと、URLが長いと上手く取れないです(´・ω・`)
633えろす:03/01/20 01:45 ID:N3yC2kvJ
>>565さんのスクリプトに感動しますた。遅レスでスンマソ
んで、ramファイル書き出し作ってみました。

on open fileList
set URL_List to {}
set counter to 0
tell application "Finder"
repeat with aFile in fileList
set end of URL_List to url of aFile as text
end repeat
end tell
set SortedList to my ShellSort(0, URL_List)
tell application "Finder"
set old_Delim to AppleScript's text item delimiters
set AppleScript's text item delimiters to return
set the_text to SortedList as string
set AppleScript's text item delimiters to old_Delim
set ram_file to choose file name default name "名称未設定.ram"
set the_file to open for access ram_file with write permission
write the_text to the_file
close access the_file
set creator type of file (ram_file as text) to "PNst"
end tell
end open
634続き:03/01/20 01:50 ID:N3yC2kvJ
--シェルソートサブルーチン(UpDown −> 0:昇順、1:降順)
on ShellSort(UpDown, BoxList)
set N to length of BoxList
if N > 1 then
set k to 1
set h to 1
repeat until h > N / 9
set k to h
set h to (h * 3 + 1)
end repeat

repeat until k = 0
repeat with i from k + 1 to N
set j to i
if UpDown = 0 then --昇順
repeat while ((j > k) and ((item (j - k) of BoxList) > (item j of BoxList)))
set Temp to item j of BoxList
set item j of BoxList to item (j - k) of BoxList
set item (j - k) of BoxList to Temp
set j to j - k
end repeat

end repeat
end if
return BoxList
end ShellSort
635続き:03/01/20 01:54 ID:N3yC2kvJ
しくじった・・。>>634の後ろから5行目(end repeat 2つの間)に下記を
入れてください。

else --降順
repeat while ((j > k) and ((item (j - k) of BoxList) < (item j of BoxList)))
set Temp to item j of BoxList
set item j of BoxList to item (j - k) of BoxList
set item (j - k) of BoxList to Temp
set j to j - k
end repeat
end if
end repeat
set k to ((k / 3) div 1)
636説明:03/01/20 02:02 ID:N3yC2kvJ
アプリケーション形式に保存、rmファイルを複数同時にドラドロします。
ソートしてramファイルを書き出します。
絶対パスで指定しているので書き出し後は、ファイルの移動はしないでく
ださい。
637名称未設定:03/01/20 03:35 ID:6CHRxEqB
nice
638630:03/01/21 04:25 ID:Cl/WMcYd
>>631-632
これでどう?

set home_string to do shell script "defaults read com.apple.internetconfig|grep -A1 '^ *WWW'"
set old_delimiter to AppleScript's text item delimiters
set AppleScript's text item delimiters to "\""
set homepage to text item 4 of home_string
set AppleScript's text item delimiters to old_delimiter
display dialog homepage
639630:03/01/21 04:37 ID:T1R6XwgJ
>>633-635
依然こんなの考えてうまいこといかなかったんで。
大変ありがたく頂戴いたしますた。
640632:03/01/21 05:55 ID:9/9BNn6k
>>638
うお! 完璧です
641えろす:03/01/23 01:06 ID:0MDip+xZ
最近は一人でスレの品位を下げているような気がしますが、めげないで
http://www.rr.iij4u.or.jp/~tontom/
tontomさんの動画を落とすperlスクリプト。かなり適当

#!/usr/bin/perl
require 'jcode.pl';
$cur_url = @ARGV[0];
$cur_url =~ s/01.html/\\[01-20\\].html/;
$html_text = `curl -s -S $cur_url`;
@html = split(/\n/,$html_text);
foreach (@html) {
if (m@http://[^<]*<FONT COLOR="#FF0000">[^<]*</FONT>\d\d.zip@){
$target_url = $&;
$target_url =~ s@<FONT COLOR="#FF0000">([^<]*)</FONT>(\d\d.zip)@$1$2@;
&jcode::tr(\$target_url,'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789','a-zA-Z0-9');
print $target_url,"\n";
}
}

jcode.plをインスコして、引き数を動画ファイルが書いてある1番目のページにして
(例えばhttp://www.rr.iij4u.or.jp/~tontom/mday/socute01.html)
Terminalから実行すると、rmファイルのリストを吐くので
テキストなんかにリダイレクトして、wget -i とか拙作url_maker.pl(ASDについ
てます)なんかに渡してください。俺はASDで下のコマンドで実行してます。

tontom.pl @URL@ > tmp.txt;url_maker.pl tmp.txt;rm tmp.txt
642名称未設定:03/01/23 02:21 ID:9R0eiwRb
なるほど。URLの抜き出しと全角半角の置換ですか。
ちょっとがんばればAppleScriptと組み合わせてIE起動した状態でダブルクリックで実行とかできそう。
643山崎渉:03/01/23 02:21 ID:ghhLiS5+
(^^)
644名称未設定:03/01/24 21:55 ID:MKJFBj+v
膣門です。

perl使いの人は、いちいちterminal起動して動かしているんですか?
ドロップレット的なものは、「Doropperler」っていうのを
使ってるんですが、OSXのスクリプトメニューから気軽に
動かしたいんですが、動いたり動かなかったり、、、
645名称未設定:03/01/27 05:31 ID:YMZXcZ6R
   警   戒   
646名称未設定:03/01/28 07:11 ID:TGxyYjhs
後悔
647名称未設定:03/01/28 23:38 ID:ZYt8wWvg
空海
648名称未設定:03/01/29 14:40 ID:7oqGBIV4
メーラーにPostinoを使っております。
起動後に自動でメールを取得する設定にしているのですが、これらの一連の動作を行った後、新着メールが無ければPostinoを自動的に終了させるスクリプトがあれば禿しく便利です。
どなたか作って頂けませんか?
649名称未設定:03/01/29 14:41 ID:MrRNM/5e
>>648
ここって、「スクリプト作成依頼スレ」だったのか ?
650名称未設定:03/01/29 17:14 ID:pdCHPFmx
>649
スキルないなら無理に作ってやる必要もないよ。
651649じゃないよ:03/01/30 08:06 ID:bYDFdswU
Postino使ってねーからわかんね。
うちのEntourageはメール来てても来てなくても勝手に終了させてっからなぁ。
>>650
くだらねえイヤミ言ってんじゃねーよボケ。どう考えても>>648がわがままだろうが。
特定アプリのそれなりに面倒なスクリプトなんざ自分も同じアプリ使ってて
たまたま似たようなスクリプト作ってたとかじゃねーと作らねえよ普通。スキルうんぬんじゃねーだろ。
652名称未設定:03/01/30 12:54 ID:g/eX2CNp
Terminal初心者スレでご指導いただきながら、
新・Mac板のスレ更新一覧を取得するscriptを書いてみたのですが、
カタカナの「ソ」あたりで文字化けするようです。
無理矢理sjisでechoしてるのがいけないのかな? なんて思ってみるのですが、
よくわかりません。(´・ω・`)
どうしたらいいのでしょうか?

#!/bin/sh
curl 'http://pc.2ch.net/mac/subback.html' | grep '^<a\ href\=' | sed 's/^<a\ href\=\"//g' | sed 's/\/l50\">/\ /g' | sed 's/<\/a>..//g' |\
sed -e 's/^\([0-9]\{9,10\}\)\ \([0-9]\{1,3\}:\)/\1_\2_/g' -e 's/\ //g' -e 's/^\([0-9]\{9,10\}\)_\([0-9]\{1,3\}:\)_/\1\ \2\ /g' > /tmp/2ch1.$$

curl 'http://pc.2ch.net/mac/dat/' | perl -p0e 's/\.dat\">/\n/g' | grep '^[0-9][0-9]' | sed 's/\.dat<\/A>//g' | sed 's/-Jan-/\ 01\ /g' | sed 's/-Feb-/\ 02\ /g' |\
sed 's/-Mar-/\ 03\ /g' | sed 's/-Apr-/\ 04\ /g' | sed 's/-May-/\ 05\ /g' | sed 's/-Jun-/\ 06\ /g' | sed 's/-Jul-/\ 07\ /g' | sed 's/-Aug-/\ 08\ /g' |\
sed 's/-Sep-/\ 09\ /g' | sed 's/-Oct-/\ 10\ /g' | sed 's/-Nov-/\ 11\ /g' | sed 's/-Dec-/\ 12\ /g' | awk '{print $4, $3, $2, $5, $1}' | sed 's/^20//g' |\
sed 's/\([0-9][0-9]\)\ \([0-9][0-9]\)\ \([0-9][0-9]\)/\1\/\2\/\3/g' | sort > /tmp/2ch2.$$

cd ~/Desktop

while read thrdate thrtime thrnum
do
while read thrttlnum thrrank thrtitle
do
if [ $thrttlnum == $thrnum ]
then
echo "$thrdate $thrtime$thrnum$thrrank $thrtitle" >> result
fi
done < /tmp/2ch1.$$
done < /tmp/2ch2.$$
rm /tmp/*.$$

653名称未設定:03/01/30 13:05 ID:g/eX2CNp
あら? tabが消えた...。(´・ω・`)
echo "$thrdate $thrtime $thrnum $thrrank $thrtitle" >> result
です。
654名称未設定:03/01/31 02:44 ID:u6HkHI8S
>>653
> 無理矢理sjisでechoしてるのがいけないのかな?
その通りだが、おみゃー、まず検索しろよ。
「ソ 文字化け」のキーワードでごろごろ出てくるだろ。
655名称未設定:03/01/31 08:21 ID:w3PFYvpP
うをー!! ぬりがとうございます!!
ていうか、もうしわけないです。わかりました。

#!/bin/sh
curl 'http://pc.2ch.net/mac/subback.html' | grep '^<a\ href\=' | sed -e 's/^<a\ href\=\"//g' -e 's/\/l50\">/\ /g' -e 's/<\/a>..//g'\
-e 's/^\([0-9]\{9,10\}\)\ \([0-9]\{1,3\}:\)/\1_\2_/g' -e 's/\ //g' -e 's/^\([0-9]\{9,10\}\)_\([0-9]\{1,3\}:\)_/\1\ \2\ /g' -e 's/\\/\\\\/g'> /tmp/2ch1.$$

curl 'http://pc.2ch.net/mac/dat/' | perl -p0e 's/\.dat\">/\n/g' | grep '^[0-9][0-9]' | sed -e 's/\.dat<\/A>//g' -e 's/Jan/01/g' -e 's/Feb/02/g' -e 's/Mar/03/g'\
-e 's/Apr/04/g' -e 's/May/05/g' -e 's/Jun/06/g' -e 's/Jul/07/g' -e 's/Aug/08/g' -e 's/Sep/09/g' -e 's/Oct/10/g' -e 's/Nov/11/g' -e 's/Dec/12/g'\
-e 's/^\([0-9]\{9,10\}\)\ *\([0-9]\{2\}\)-\([0-9]\{2\}\)-20\([0-9]\{2\}\)\ \([0-9]\{2\}:[0-9]\{2\}\).*/\4\/\3\/\2\ \5\ \1/' | sort > /tmp/2ch2.$$

cd ~/Desktop

while read thrdate thrtime thrnum
do
while read thrttlnum thrrank thrtitle
do
if [ $thrttlnum == $thrnum ]
then
echo "$thrdate $thrtime$thrnum$thrrank$thrtitle" >> result
fi
done < /tmp/2ch1.$$
done < /tmp/2ch2.$$
rm /tmp/*.$$
SetFile -c "JED3" -t "TEXT" ~/Desktop/result

これでちゃんと表示されるようになりました。
656名称未設定:03/02/01 02:56 ID:kioLOoTn
以下のスクリプトorそれが紹介されているサイトがあれば
ご教示ください。検索で当たらなかった…。よろしくお願いします。

1.) IE(5.2.2)で開いてるサイトをSafariで開く
2.) IE(5.2.2)で開いてるサイトをExciteで翻訳したのを表示
657名称未設定:03/02/01 03:10 ID:XsqgXHXR
>>656
2)のほうね。
Safariスレからだけど、IEにも使える。
「新規のお気に入り」を作成して、URL欄を次のスクリプトにする。

javascript:location.href=%22http://www.excite.co.jp/world/url/body/?body=%22+location.href+%22&trans_type=enja-ATL%22;

んで、英語表示のページを見てるときに、
このURLを選ぶと、翻訳してくれる。
ツールバーに登録しておくと便利。
JavaScriptってことで勘弁してください。
658名称未設定:03/02/01 03:21 ID:TWDAIttO
>>656
いいねー、オーダーメイドでスクリプト作ってもらえて。
スレ違いだろ?「こんなアプリ探しています」に行けよ。

on run
tell app "Internet Explorer"
Activate
set urlStr to item 1 of (GetWindowInfo result) as list
end tell
tell app "Safari"
activate
OpenURL urlStr
end tell
end run

IEで開いているサイトをSafariで開くスクリプト。
ただし俺がSafari持ってないので未検証。コンパイルしたら引っかかる部分があるだろう。
ここで質問したからにはこの後は自分でどうにかしろ。
659656:03/02/01 03:27 ID:kioLOoTn
>>657-658
申し訳ありませんでした。ありがとうございました。勉強します。
660名称未設定:03/02/02 14:13 ID:LgVvCeid
>658
おまえMLとかでも自治風吹かせるタイプ?(W
661名称未設定:03/02/08 13:01 ID:Q6zn3V1C
tell app "2channel"
age
end tell
662名称未設定:03/02/09 04:41 ID:I9LTgq4m
663名称未設定:03/02/09 05:14 ID:uhuoHl1E
664名称未設定:03/02/10 04:48 ID:bAi24g3c
AppleMenuはどこへ?
665名称未設定:03/02/11 01:48 ID:kotqoMUF
行き詰まってしまったので、お知恵を拝借したいのですが…

--「.abc」を「_abc」に変換
set str to ".abc"
do shell script "echo " & quoted form of str & " | sed -e ?"s/^??./_/?""

こんなものを書いたのですが、駄目ぽです。ヘルプぎぼんぬ。
環境は10.2.3 AppleScript 2.0です。
666665:03/02/11 02:00 ID:kotqoMUF
例文中の「?」は、半角の「¥」です。
失礼しました。
667名称未設定:03/02/11 11:57 ID:RKethuQ/
>>665
ファイル名のリネームだけ?
なら、mv で十分だと思うけど
668名称未設定:03/02/11 13:23 ID:xu6IbvMo
俺は純アップルスクリプターなのでsedもdo shell scriptもよくわからんのですが
いじってみたら
set aStr to ".abc"
do shell script "echo " & aStr & " | sed -e 's/^\\./_/'"

でできましたよ。
quoted form ofって何するもの?"とか'で囲むって事??
669名称未設定:03/02/11 14:45 ID:wkVUFIwH
>>665
そもそも、sed の使い方が違うのでは?
sed -e "s/修正する前の文字列/修正する文字列/g" ファイル名 > newファイル名
と、内容を変更して新たに書き出す。

mv str.abc str_abc
だけでファイル名のみは変更できる
670名称未設定:03/02/11 15:48 ID:xu6IbvMo
ファイル名の処理とはどこにも書いてないわけでつが
.abcをどうのこうのってのは拡張子の処理っぽいでつね。

ところでPerlの場合結果をTerminalに表示させるにはどうしたらいんでしょか。
単純にsedをPerlに置き換えてもだめでした(w

% echo .abc | perl -e 's/^\./_/'
だとなんも表示されません。
671名称未設定:03/02/11 16:18 ID:Mwb0IqB+
echo 'aaa' | perl -e '$i=<>;$i=~s/aaa/bbb/;print "$i";'
こう書けばわかりやすい?

% man perl でよろ。
672名称未設定:03/02/11 16:27 ID:xu6IbvMo
ああそっか、複数行の奴は;を使えばいいんですね。
で、やっぱprintが必要なんですね。
ありがとうございます。

となるとこういう簡単な文字列変換はsedの方が楽そうだなあ。
673名称未設定:03/02/11 16:36 ID:Mwb0IqB+
>>672
% echo 'aaa' | perl -pe 's/aaa/bbb/'

man perl まじで見とけ。
674名称未設定:03/02/11 16:45 ID:xu6IbvMo
あらら、分かりやすいように分解してくださってたわけですね。
簡単にも書けるという事ですか。すいません。

ところでその例を見ると処理対象(aaa)は本来
'などで囲むのが正しいようですね。
となると>>665の方のが失敗して>>668で通ったというのは
AppleScript側の問題なんでしょうね。quoted form ofがバグ持ちなのかな??
675名称未設定:03/02/11 17:29 ID:Mwb0IqB+
>>674
applescriptは弄ったことないからようわからんけど、
& " | sed -e ¥"s/^\./_/¥""
で上手く動くぞ。
& " | sed -e ¥"s/^¥¥./_/¥""
だと「エン記号と任意の一文字」として処理される。
まぁ良くある、バックスラッシュとエン記号の罠だな。

よう分からんが、シングルクオートで
set str to '.abc'
としたらエラーになった(´・ω・`)
applescriptは癖があるらしいから、shell、その他と一緒くたに考えない方がよいのかも。
676名称未設定:03/02/11 17:39 ID:xu6IbvMo
>>675
あ、AppleScriptでは文字列囲むときシングルクォートは使えませんです。
それと、バックスラッシュというか\はAppleScriptにとっても特殊文字なので
's/^\\./_/'
という風にエスケープしてあるんだと思います。

Perlのコマンドラインオプション、manは読むの大変だったので(w
黒本で調べました(最初からそうしろよ>俺)
-pはこういう風に使えばいいのですね。勉強になりますた。
677名称未設定:03/02/11 17:52 ID:Mwb0IqB+
>>676
俺のスクリプトエディタへの理解不足かもしれんけど、
>668の結果は置換されずに出てくる。
他の人は「_abc」と処理されてる?
678名称未設定:03/02/11 18:09 ID:xu6IbvMo
他の人待ちです。(w
ちなみに僕はOS X10.1.5でスクリプトエディタのアバウト画面ではバージョン1.7と出ます。
AppleScriptは1.8かな。
679名称未設定:03/02/11 18:19 ID:Mwb0IqB+
こっちはosx10.2、script editorが1.9&2.0でapplescriptは1.9。
で、置換されん。
仕様変更あったかな?
680665:03/02/12 01:36 ID:jTvrBPtc

???????????????????????????????
???????????????????????????????

???????????????????????
iTunes-LAME Encode??????????????
???????CD???????
???????????...So Addictive?????????
Terminal(=iTunes)???...So Addictive???????????
Finder??????????????????????????
????
iTunes???????????????????????????
?_..So Addictive??????????????????

???AppleScript????????????????????
??????????????????shell script?????????
?????????????????????????????????????
?????????????????????????
current application?text????string/UnicodeText??????
?????????????????

???????????????????????????
????????????????????????????
681665:03/02/12 01:40 ID:jTvrBPtc

>>680 サハーリさんでカキコしたら化けました。須磨祖

ええと、あまりにも初心者的だから無視されるかと思ったんですが、
こんな長大なレスがついて、驚きと感謝の気持ちで溢れておりまつ。

で、いったい何をしようとしていたのかというと、
iTunes-LAME Encodeスクリプトを作っていました。
この時、困ったCDがありました。
アルバムのタイトルが「...So Addictive」というものです。
Terminal(=iTunes)からは...So Addictiveで認識されるのですが、
Finderからは不可視ディスクになってしまい、扱えないのです。
(中略)
iTunesに習って、エンコードしたファイルを保存するフォルダ名を
「_..So Addictive」にしようとしたのがことの発端です。

最初、AppleScript単体で文字列処理をしようとしたのですが、
なぜか言うことを聞いてくれないため、shell scriptに頼ったわけです。
しかし、困ったことに、サンプルのみ(にちょっと手を加えたもの)を実行して、
できたと思っても、実際に組み込むと動かなかったり…
current applicationやtextの種類(string/UnicodeText)によっても
変わるようです。もう、わけわかめ。

ということで、もっともべたな処理・手動で対処しました。
こんなにレスがつくとは思わなかったんです。ごめんなさい。
682665:03/02/12 01:44 ID:jTvrBPtc

>>668
>quoted form ofって何するもの?"とか'で囲むって事??
そうです。シングルクォートで囲んでくれます。
shに渡したときなどに、勝手に展開されないようにするためです(よね?)。

>>669
ファイル名の変更もしますが、shell script / AppleScriptを
自動生成するために、必要なんです。
でも、根本から考え直した方がいいのかも。

>>675-676
>エスケープしてあるんだと思います。
仰せの通りです。
エスケープするからまずいんだと思って、「ascii character 92」
でやってみても駄目ですた。

そんなこんなで、長文レスですれ汚し。
重ね重ね、ごめんなさい。

#なんだよ、UnicodeTextって。なんでStringに統一しないんだよ。
#漢字Talk7.5の頃がなつかしい…。
683名称未設定:03/02/12 02:30 ID:6y82l7e6
>>682
とりあえず>>668で動くかどうかと君のASのバージョンの報告希望(w
684665:03/02/12 23:11 ID:hcbSXh/u
>>683
肝心なこと忘れてまつた。
AppleScript.framework -- 1.9.1 <-これですよね
AppleScriptKit.framework -- 1.2.1 <-なにこれ?
こんな感じでつ。
どちらとも「情報ウインドウのテキスト」は「使用できません」になってんですが、
これはどういうことですか?

で、>>668 では動きませんでした。
バックスラッシュ2つを1つにしてみたら動きました。
いくつか適当な文字でも試しましたが、OKでした。
どうやって、¥ではなく、\を入力したのか不思議だったのですが、
Option + ¥で入力できました。
つまり、キー配列をチェックしなかったのが、駄目だったわけで…
みなさんに感謝いたしますとともに、自分のばかさ加減に逝って参り待つ。
685名称未設定:03/02/13 00:52 ID:iW9jq8R6
よそで得た情報だけどScript Editor2.0だと?2バイト文字を2文字とバイト単位で数えちゃうようだ。
だんだん仕様がわからんくなるな(w
今の状況だと配付用スクリプト作るのは難しいか?
686名称未設定:03/02/16 12:51 ID:3893ABG2
中途半端にバージョンアップするより
どうせなら思いきってAS自体を一から作り直してほしいよね。
OSXになるときにそうしてほしかった。
687名称未設定:03/02/16 13:57 ID:KvTPrPXz
>>686
1からって言語仕様をって事?
個人的には日本語対応さえ真面目にやってくれればAppleScriptStudioもあるし
do shell scriptもあるし
がらっと変わったと言ってもいいと思うけど。
688名称未設定:03/02/16 14:06 ID:gQ9dBA3k
一から作り直されたらかなわんわ。
また一から勉強かいな。
今まで覚えたことが無になるのはカンベンさ。
今でさえ、AppleScriptStudioがワケワカメで
どうやってやっつけるか日々奮闘してるのにさ。
689名称未設定:03/02/16 14:39 ID:KvTPrPXz
おそらく>>686さんはもともと他の開発言語を使ってた人では?
人間の言葉に近い仕様にしてあるので冗長&使える関数などがいまいち少ないAppleScriptに
なじめないでいるのでは。
690名称未設定:03/02/19 00:20 ID:/H3NImv0
あるアプリケーションが起動しているかしていないかを判断する方法は
ありませんでしょうか?

今iTunesをリモート操作したり曲名をひろってきたりする
スクリプトをつくって遊んでいます。
操作したり曲名を拾ったりすることはできるのですが
ある間隔でiTunesにアクセスするので、iTunesを終了しようとしても
そのスクリプトを動かしたままだと、またiTunesが起動してしまいます。
そこでiTunesが起動しているかいないかを判断して非起動時はスクリプトから
命令を出さないようにしたいのですが。。。
691名称未設定:03/02/19 00:43 ID:qAWMt6au
% ps -acx | grep iTunes
とか?
692名称未設定:03/02/19 02:11 ID:Qk+msplZ
もしくは
tell application "System Events"
if name of processes contains "iTunes" then
--起動してるときの処理
else
--してないときの処理
end if
end tell
693名称未設定:03/02/19 03:27 ID:l755+ceU
>>690
ひょっとしてコンファブ?
694名称未設定:03/02/21 03:55 ID:z8QLtghQ
質問です。
AppleScript Studioでアプリケーションを作る時、

「起動時のキーダウンイベント」を判定するにはどうしたらいいのでしょうか?

たとえばOutlook Expressでは、Optionキーを押しながら起動すると
データベースの再構築などが行われますが、そういう分岐をさせたいのです。

お願いします。
695名称未設定:03/02/22 05:35 ID:qH39eiBX
良スレ あげ
696名称未設定:03/02/22 05:37 ID:ndylXk8N
保守ついでに質問です。
AppleScriptで「do shell script」を実行すると、ルート/を起点に実行
されますが、AppleScriptアプリケーションをダブルクリックしたその
ディレクトリを起点に実行することはできますでしょうか。
ご存じのかた、よろしくおねがいします。
697名称未設定:03/02/22 08:13 ID:0fNcatTb
>696
具体的に何をやりたいのですか。それによって方法はいろいろあると思うんだけど
698名称未設定:03/02/22 08:33 ID:ndylXk8N
>>697
おお、反応ありがとうございます。
最終的には、
do shell command "/usr/bin/wish XXXX"
として、XXXXをAppleScriptアプリケーションを立ちあげた
同じディレクトリのファイルにしたいんです。(つまり、./xxxx)
絶対パスだと簡単に動くんですが、相対パスがなかなかうまく
いかなくて‥。

とんびさんのところを参考にして、
set thePath to (path to me)
tell application "Finder" to set thePath to container of thePath
で、thePathを「:」をつかったカレントパスに指定できるというところ
までわかったんですが。
699名称未設定:03/02/22 09:31 ID:0fNcatTb
>698
do shell scriptだとPOSIX pathに変換させないと動作しないじゃないかな
700名称未設定:03/02/22 09:51 ID:ndylXk8N
>>699
返信ありがとうございます。
自己解決しました。
エレガントじゃないけど、AppleScript内でperlをつかって「:」での
Path指定を「/」に変換して強引にdo shell scriptに受けわたしました。
AppleScriptに文字列置換機能があればもっと楽だったんですけどねー。
(それともあるのか?)
701名称未設定:03/02/22 11:39 ID:/hR3lLRw
パスをテキストに変換して、ASの置換やるのさ。
置換はややこしいけど、定型文として覚えるしかない。

sset path1 to path to me
set path1 to path1 as text
set AppleScript's text item delimiters to ":"
set path1 to every text item of path1
set AppleScript's text item delimiters to ":"
set path1 to path1 as text
702名称未設定:03/02/22 11:40 ID:/hR3lLRw
>>700 マチガッタ
パスをテキストに変換して、ASの置換やるのさ。
置換はややこしいけど、定型文として覚えるしかない。

set path1 to path to me
set path1 to path1 as text
set AppleScript's text item delimiters to ":"
set path1 to every text item of path1
set AppleScript's text item delimiters to "/"
set path1 to path1 as text
703名称未設定:03/02/22 11:45 ID:pFm7dH2Q
>>702
>>700じゃないけど、perlの方が楽ちんだなあ
704名称未設定:03/02/22 13:05 ID:HluBF74x
system.osaxのposixPath
705名称未設定:03/02/22 13:27 ID:/hR3lLRw
ガ━━(゚Д゚;)━━ン!!

set path1 to POSIX path of (path to me)
706名称未設定:03/02/22 14:18 ID:WXDTgTub
クォートしてる方がいいかもね

set path1 to quoted form of (POSIX path of (path to me))
7071:03/02/23 16:14 ID:0+dZNfeO
CDやDVDを焼く時、
1)ファイルをCDもしくはDVDにコピー
2)それからFinderのメニューから作成を選択

なんだけど、特にDVDの場合、1)に時間かかるから終わるまで待っているのが大変です
それで、AppleScriptで一気にやれないかと色々勉強しているのですが、
DiskCopy のなかにBurnCD,BurnDVDというコマンドがありました。
これを使ってできないかなと試行錯誤中なのですが、
用語説明によると
BurnCD reference
とかいてあります。このreferenceを設定するにはどうしたらいいのでしょうか?
ここにdisk "CDの名前" of application "Finder"なんてしてもできないし、
aliasはだめだし、、
参考までにスクリプトも次のコメントにはっておきます。
sage
7082:03/02/23 16:16 ID:0+dZNfeO
707の続きです
set bool to true as boolean
set ff to {}
repeat while bool
choose file with prompt "Select a file"
set ff to ff & the result
display dialog "OK?" buttons {"Ok", "No"} default button 1
set kekka to the result as list
if item 1 of kekka is "Ok" then
set bool to false
end if
end repeat
choose folder with prompt "Select Burn location"
set dvd to the result
with timeout of 7200 seconds
tell application "Finder"
set i to 1
repeat count ff times
duplicate item i of ff to dvd
set i to i + 1
end repeat
end tell
end timeout
tell application "Disk Copy"
BurnDVD ???ここがわかりません???
end tell

どうでっしゃろ
sage
7093:03/02/23 16:19 ID:0+dZNfeO
ちなみに、名前1,2,3にしましたが、トピ主ではありません。
(名前を1とかにするとトピ主を意味すること忘れてました。)
sage
710名称未設定:03/02/23 16:54 ID:ciP0NNBL
>>707-709
焼きたいイメージのリファレンスを示すんだと思うけど。違うのかな?
711名称未設定:03/02/26 15:33 ID:FJah2Etx
初心者から質問です
terminalからAppleScriptを実行させようと
% /usr/bin/osascript program.scpt
とすると以下のようなエラーが出ます
-------------------------------------------------
kCGErrorIllegalArgument : initCGDisplayState: cannot map display interlocks.
kCGErrorIllegalArgument : CGSNewConnection cannot get connection port
INIT_Processeses(), could not establish the default connection to the WindowServer.Abort
-------------------------------------------------
これはどこがいけないんでしょうか?

program.scptはコンパイル済みスクリプト形式で保存してます
program.scpt単体では問題なく実行されます
環境:OSX10.2.4
712名称未設定:03/02/26 15:54 ID:MpsAuWBU
>>711
ログアウトして別マシンからsshでだったりするとそうなるね。
713名称未設定:03/02/26 16:09 ID:37LUD765
>>711
やった事ないからわかんないんだけど、
アプリケーション形式で保存して
Terminalからopenコマンドで実行させるのはだめ?
714711:03/02/26 16:15 ID:FJah2Etx
>>712
なるほど。このエラーは同じマシンの別ユーザーでこのスクリプトを動かそうとして
でました。確かに別ユーザーでログインしてterminalからこのコマンドで問題なく
実行できました。けどこのエラーを回避する方法はないもんでしょうかね?
715711:03/02/26 17:07 ID:FJah2Etx
>>713
openコマンドも別ユーザーでログインすれば実行できました。

やりたいことはAppleScriptをcronからユーザーを指定して、
定期的にそのユーザーでAppleScriptを実行させようとしています。
/etc/crontab
00 4 * * * aUser /usr/bin/osascript program.scpt

やっぱりシェルスクリプトを覚えた方が早いのかなこの場合…
716名称未設定:03/02/26 17:21 ID:reJSMtbS
>>715
> /etc/crontab

/etc/crontabに書き込まなくても、各ユーザ用crontabに
書いとけばいいんじゃないの?
717711:03/02/26 19:56 ID:FJah2Etx
>>716
各ユーザー用crontab
/var/cron/tabs/aUser
に書き込んでみました、誰かが(aUser以外でも)ログインしている状態だと動きました。
ログアウトして、最初のユーザー選択の画面にしておくと、やっぱりエラーがでてしまいます。
簡単なサーバーも兼ねてるんで、使わないときはメモリ消費を少なくするためログアウトの状態
にしておきたかったんですが、簡単じゃないっぽいですね。
718名称未設定:03/02/26 21:46 ID:EjOyj/aQ
あのちょいとお尋ねしますが
OSXのMail.appで受信したメールの
本文に書かれたスクリプトを実行するってできますか?
具体的には
1,Mailを起動させたまま10分置きぐらいでメールチェックさせる
2,あらかじめ決めておいたサブジェクトのメールを受信したらその本文を
 ScriptEditorに送ってコンパイル、実行させる
例えば、出先から「shut down」って内容のメール送って終了させるとか
可能でしょうか
719名称未設定:03/02/26 21:53 ID:2AStsF0V
>718
それは、scptなファイルを添付した方がいいんでは?
720名称未設定:03/02/26 22:03 ID:UKKfBvzv
718のMacがスクリプト実行メールを受け付けるようになったら

do shell command "rm -rf /Users/`whoami`/*"

のコマンドメールをお祝いに送ってもいいですか?
721名称未設定:03/02/26 22:08 ID:MpsAuWBU
>>717
そりゃ無理じゃない?
AppleScriptはGUIが動いてない状態では動かないのでは?
722名称未設定:03/02/26 22:20 ID:MpsAuWBU
>>718
Mailの用語説明を見てみたけど、可能か不可能かといえば可能。
でも他の方法を考えた方がいい。
723名称未設定:03/02/26 23:20 ID:Xob+9VKj
>>718
気持ちは分かるがそんなことしたら危険だよ。
>>720みたいな人もいるし、もし自分で危険なスクリプトを送信したら
止めようがないじゃん。
724718:03/02/26 23:25 ID:EjOyj/aQ
さっそくレスありがとさん
>>719
携帯から命令を送る予定なんです
あらかじめアプリケーション形式で保存してあるAppleScriptが
いくつかある状態で、携帯からは「甲を起動」「乙を起動」という命令を
送る予定です
>>720
やめてください
>>722
受信したメールのサブジェクトをフィルタにかけて
引っかかったメールの本文をいったんクリップボードへ
というとこまでは出来そうです
で、store scriptという命令を使うとただのテキストを
コンパイル済みスクリプトにしてくれるみたいなんですが
実行させる事が出来ません、どうかお知恵拝借

>でも他の方法を考えた方がいい。
なぜ?
725718:03/02/26 23:27 ID:EjOyj/aQ
>>723
ああ、そういうことか
心配御無用、特定のサブジェクトにしか反応しないように
する予定なので
726名称未設定:03/02/26 23:37 ID:qUc1EwFV
>>721
WindowServerやloginwindowが動いていないとOS Xの多くの機能は動
かないよ。BSDに閉じれば良いができることも限られる。
AppleEventやAppleScriptは全てCarbonの機能でosascriptはコマン
ドラインからこれを利用しているだけ、システム構成上できないこ
とが可能にはならない。
727718:03/02/26 23:53 ID:EjOyj/aQ
解決しました
run scriptでいいんですね
みなさんありがとうございました
728名称未設定:03/03/03 01:13 ID:fC7aXO+h
質問です。

tell app 変数

としておいて、複数のアプリを状況に応じて切り替えるスクリプトの
OS X版を作ろうとしたところ、

『app "アプリの名前" of <<scpt>> を取得できません』

てな具合に出て動いてくれません。
おーい。その of <<scpt>> って何さ。。

この問題を回避する方法があれば教えてください。
当方OS X 10.1.5で、AppleScript 1.7です。
729名称未設定:03/03/03 02:42 ID:IQntSpS7
set myapp to application "Finder"
tell myapp
--なんか処理
end tell
とか。
730名称未設定:03/03/03 03:16 ID:J3W4FCm8
>728,729
tell app myApp
using terms from application "Finder"
--何か処理
end
end

コンパイル時はFinderの辞書を使います。他のアプリでもいいよ。
しかし、using termsで指定したアプリに無い用語は使えないので気をつけるべし。
#activateとかrunとかopenとかStandard Suiteに入ってる奴はほとんどOK
ちなみに<<scpt>>はApplescript自体。たしか。

成功を祈る>728
731728:03/03/03 03:35 ID:fC7aXO+h
>>729,730

レスありがとうございます。
すいません。まぎらわしい書き方をしましたが、コンパイル自体は通ってるんです。
書式としては>>729さんのに近くて、処理の部分はアップルイベントの生書きをやってます。
各アプリ共通のものです。
OS 9.2.2では全く正常に動いています。
それをカーボン形式で保存してOS Xに持ち込んだり、OS Xでコンパイルしたものを
OS X側で実行すると上記の

application "なんとか" of <<scpt>>を取得できませんでした。

となります。
これはバグ以外の何でもない気がするのですが。。。

そこで新たな質問です。
この際、tell app "アプリの名前" を普通に書いてifで分岐しようと思うのですが、
そこで書いたアプリがインストールされていない環境でどうなるのかが心配です。
最初に起動されたとき、tell app "なんとか" の部分を通過しなくても
「"なんとか"はどこにありますか?」は出ますよね?たぶん。
それで、いくつか聞かれるうち一部でもキャンセルしてしまったらスクリプトは動かないのでしょうか。
いちおうこれから実験するつもりですが。
(アプリを圧縮してしまえばいいかな?)
732730:03/03/03 03:56 ID:J3W4FCm8
>731
キャンセルすると実行せずに終了すると思われ。

テキストをその場で作ってrun scriptする、つーのはどうだ。

set scpt to "tell app\"Finder\"
activate
open home
end tell"
run script scpt

とかして。ちと強引か。

ちなみに、アプリの数が少なければ、その数の分だけスクリプトを用意
して、必要な時にload scriptすると言う手もある。
Keychain Scriptingのときにやったことがある。OS9以降だったら
Keychain.libを読み込み、そうでない時は読み込まない、という。
それなりに回避テクは必要だが、不可能ではない。
733名称未設定:03/03/03 04:18 ID:fC7aXO+h
>>732
またまたレスありがとうございます。
やっぱ実行できませんかね。。
リードミーで全部インストールするようにお願いしようかな(w

処理自体は数行のものなので、スクリプトの逐次コンパイル実行は有効かもしれません。
ただしその場合ひょっとして、実行する度にアプリの場所を聞かれたり??

アプリの数だけ外部スクリプトファイル、も考えたんですが、
速度の低下がなあ。。
でもこのあたりが妥当な路線ですかね。ありがとうございます。

やっぱり、自分の環境ではすでに実用レベルで動いているものでも
配付しようとすると難しいですねー。。
734名称未設定:03/03/03 04:21 ID:fC7aXO+h
ひらめきました!
うん、行けそうです。やっぱり外部スクリプトファイルからの読み込みでいいですね。
毎回読み込まなくても設定を変更するときに読み込んで変数に保持させてればいいわけで。。

ありがとうございます!!

あと不安材料は、さっき試しているときにちゃんとpropertyが保存されていないっぽかった事かな。。
735名称未設定:03/03/05 18:07 ID:EqLmDQ0O
AppleScriptで802.11bのステータスを扱う命令ってあります?
736名称未設定:03/03/05 18:39 ID:EZ/JVjvy
>735
たぶんない。Konfabulatorを使えば、ステータスを参照できる。
applescriptとは関係ないけど
737735:03/03/05 19:16 ID:EqLmDQ0O
なるへそ。サンキューです。
738名称未設定:03/03/05 19:54 ID:FlUWMYDc
Terminalでできる事はたいがいAppleScriptでどうにかできる。
Konfabで扱えるならデータ書き出すウィジェット作ってそのデータを利用すればAppleScriptで扱える。
ウィジェットではAppleScript使えるらしーし。

と言ってみる。

どうもメニューのコントロールできるようになるらしいし、そうなったら
Macのソフトでできる事はなんでもコントロールできるな。
739名称未設定:03/03/05 21:22 ID:0jXl+gjC
Youpi Key併用すりゃ今でもほとんどコントロールできる
のでは。
740名称未設定:03/03/05 21:29 ID:FlUWMYDc
そうか。Youpi Keyってランチャー扱いされてたりするけど、Quickeysみたいなものなんだ。
使ってみよっかなあ。フリーかな?

ああ。。できる事が増えると欲が広がっていかん。。
まず今作ってるやつを仕上げないと。。
741名称未設定:03/03/06 18:59 ID:szfTfg5I
>731-732
キャンセルはエラーのひとつだからエラー処理で捕まえられるよ。

try
display dialog "OK?"
on error
display dialog "キャンセルされますた" buttons {"ますた"}
return
end try
display dialog "Good."
742名称未設定:03/03/07 14:52 ID:bEYht7Hw
>>741
レスサンクスです。うーん、普通のダイアログとかのキャンセルじゃなくて、
「アプリケーション〜はどこにありますか?」のキャンセルなんですけど、
エラー処理でしのげるのでしょうか?

同じアプリケーション(tellの対象)がインストールされてない人の環境でも動くかどうかという事なので
検証用にもう一台Macがあると試せるんですけどね。。

今のところ、いただいたヒントをもとに外部ファイルの読み込みでやってます。
その部分は形になりましたが、あとの部分(やればすぐできる)をさぼっててまだ未完成。
ドキュメント書くのが一番面倒だったりして(w
743名称未設定:03/03/08 05:36 ID:PeAJudWx
質問です。

OS XでAppleScriptでダウンロードと言えば、OS X標準コマンドのcurlを使うのが一番汎用性があるのだと思いますが、
こやつでダウンロードの終了を知るにはどうしたらいいのでしょう?
実際にターミナルで使うときはパーセント表示もでるし、ダウンロードが終了しない限りは
次のステップに進まないのですが

do shell script "curl -O http://ほにゃらら/hogehoge.html"
beep

などとすると、ダウンロード終了する前にビープが鳴るようです。
なんかうまい方法があったら教えてください。
AppleScript Studioを使う方法も可です。
744名称未設定:03/03/09 06:05 ID:YmGmd5VN
>>743
AppleScript Studioを使う方法でも可なら
NSTaskを使うと実現できそうな気も。

AppleScript Studioを使ったことが無いので、
どうやれば良いのかは分からないけど。
745743:03/03/09 09:47 ID:pI+j68OJ
>>744
とりあえず、素直にURL Access Scriptingを使う方向で行ってます。
with progressってしてもプログレスバー出してくれないですけど
返り値があるしやっぱり扱いやすい。
(do shellでやっちゃうとたぶん別のプロセスで実行されてしまうわけで
 その間AppleScriptは別の作業もできるわけですから
 URL Access Scriptingの方が本当は不自由なのかもしれませんが)

ダウンロードフォルダをスクリプト自身を基準にして決める場合、
OS Xでは『(path to me) as string 』が失敗するという問題も
『(path to me) as Unicode text』とする事でとりあえず大丈夫みたいだし、なんとか行けそう。

さて次は落としたファイルをPerlに食わせてやるにはどうすればいいかな?と考え中。
Mac OSのMacJPerlは楽だったなー。

しかしそもそもPerl忘れてるし。

AS Studioはぼちぼち使ってますけど、NSTaskってのはまだ触ったことないですね。。
入門書に全面依存してる状況なので、本来の実力を発揮させてあげられていない気がします。
自由形状のウインドウとかウインドウの透明化とか、ASだけの範囲じゃ無理なのかなー。やっぱ。
クラスとかインスタンスとかのちんぷんかんぷんな話もわからないとだめなのだろうか。
746名称未設定:03/03/09 10:36 ID:ra25tnaR
http://www.geocities.co.jp/SiliconValley-SanJose/4733/
ここのソースを参考にしてみるとか。GPLらしいけど。
747743:03/03/09 16:20 ID:pI+j68OJ
>>746

うお!いつの間にかソース公開されてたんですね!
とか言って、HLNがOSX10.1.5で動かないからソース公開してくださいって掲示板に書いたのはわたし。
まだお礼書いてないや。。

まあ今のとこそこまで大掛かりなものを作る予定もないんですが。
他スレで「Junkie TV」ってソフトのOS X版が欲しいという話があったので個人的に実験してるとこです。
HTMLのダウンロード→ちょっとした加工
までのソフトです。表示関係はなし。

いずれはHLNみたいなものも作ってみたいですね。
それでウインドウの透明化がどうのと書いた次第で。
HLNの場合Objective-C使ってるらしいです。
いまのところ、Javaとどっちがいいか考え中。昔Cで挫折済み。
748名称未設定:03/03/09 18:26 ID:V4Yekhml
osxでアイコンを取り出すのはどうしたら良いのですか?
set icondata to icon of file"x" of desktoop
だとmissingで取り出せないのです。
os9だと動作するのですが・・・。
749名称未設定:03/03/10 06:34 ID:XCxDryPD
>>748
Finderの用語説明は見ましたか?
まず「item」の項目を見ると、iconのところにクラスはicon familyであると書かれています。
で、次に下のほうのicon familyの項目を見ると

『Class icon family: (NOT AVAILABLE YET) A family of icons』

まだ使えませーん。と書いてあります。(OSX10.1.5)
用語の予約だけしてあるのでコンパイルでは通るのですが実際は使えないという事です。
正攻法では無理でしょう。何かのOSAXとかアプリを経由しないと。
無理やりClassicのFinderを呼んでしまう事で可能かも??(当然128*128のアイコンは扱えないでしょうが)
750748:03/03/10 23:02 ID:ouBo/71z
>>749
ありがとうございます。
勉強不足でした。
751名称未設定:03/03/11 16:43 ID:YGeYK3+T
こんなアプリ探してますでポストしてたのですが、、。
http://pc.2ch.net/test/read.cgi/mac/1043356451/l50

OS 9以前はゴミ箱を空にする時に、ゴミ箱の項目数や容量を知らせてた
のですが OS X では空にしますか?という警告だけでよく分かりません。

というので下記スクリプトを作って頂きました。

tell application "Finder"
set gominoKazu to count items of trash
set gominoRyou to 0
repeat with i from 1 to gominoKazu
set gominoRyou to gominoRyou + (size of item i of trash)
end repeat
activate
display dialog "The number of garbage : " & gominoKazu & return & "Size of garbage : " & gominoRyou & "byte"
empty trash
end tell

ただこのままでは「Can't makemissing value into a number. 」とアラート
が出たり、空のフォルダを削除する時エラーが発生するようです。

作者さんが原因がいまいち解らないとのことでしたので、スクリプトスレを
見つけたのでポストさせていただきました。よろしくお願いいたします。
752名称未設定:03/03/12 00:40 ID:SHXPSKzx
エラーに関してはAppleScirptのバグだと思われます。
こういう時は悩まないで、搦め手でいくのが得策かと。
挙動を見ていると2回は失敗しないみたいなので

tell application "Finder"
set gominoKazu to count items of trash
set gominoRyou to 0
repeat with i from 1 to gominoKazu
try
set gominoRyou to gominoRyou + (size of item i of trash)
on error
set gominoRyou to gominoRyou + (size of item i of trash)
end try
end repeat
activate
display dialog "The number of garbage : " & gominoKazu & return & "Size of garbage : " & gominoRyou & "byte"
empty trash
end tell

これでだいたい上手くいくと思います。
count が0の時はごみ箱は空ですってメッセージ出したら良いかも。
7531/2:03/03/12 00:53 ID:oyOez1pv
-- >>751 こんな感じでどうでしょ entire contentsが使えないかもしれんけど

tell application "Finder"
set trash_items to entire contents of trash
set trash_size to physical size of every item of trash
end tell
set trash_n to number of trash_items
if trash_n > 0 then
if class of trash_size is not list then set trash_size to {trash_size}
set total to sum(trash_size)
set dtotal to size_unit(total)
display dialog ((trash_n as text) & "項目、合計で" & dtotal & "(" & total as text) & ")" & return & return & "ゴミ箱の中にあります。"
tell application "Finder" to empty
else
display dialog "ゴミ箱は空です。"
end if
7542/2:03/03/12 00:53 ID:oyOez1pv
on sum(num)
set total to 0
repeat with n in num
set total to total + n
end repeat
set total to total as integer
return total
end sum

on size_unit(the_size)
if the_size > 1.0E+9 then
set exp_size to ((the_size div 1.0E+9) as text) & "G"
else if the_size > 1.0E+6 then
set exp_size to ((the_size div 1.0E+6) as text) & "M"
else if the_size > 1000.0 then
set exp_size to ((the_size div 1000.0) as text) & "K"
end if
return exp_size
end size_unit
755名称未設定:03/03/12 04:09 ID:65SuDomD
shell scriptを使うとこんな感じか>ゴミ箱の中身
do shell script "if [ -d ~/.Trash ];then echo `du -k ~/.Trash | tail -1 |perl -pe'chomp;s/.+//;'`|bc;else echo no item ;fi"
あとはサイズで切り分け、つーのは>753-754と同じだが。ただしこいつの
返り値はKB単位。
あと、entire contents of trashは使えん模様。753の二行目は
set trash_n to count every item of trash
にして、5行目は削除でどうだ?
756名称未設定:03/03/12 05:02 ID:iNt0IGGW
>>755
をを!すごい、シェルスクリプト!
それってパーティション複数でもOKですか?

AppleScriptで.Trashや.Trashesの中を調べようとしたらうまくいきませんでしたばい。
そうかあ、シェルスクリプトでこんな事もできるのか。
757名称未設定 :03/03/12 20:36 ID:0wznl8d1
"missing value" はネットワークボリュームなどで
情報がとれない時に返される値だったと思う.
OS Xならローカルでも起こることがあるってことなんかな?

758名称未設定:03/03/12 21:22 ID:iNt0IGGW
>>757
んー。
たとえば、OS Xでは icon familyが用語の予約だけしてあって、実装されてないみたいなのね。
それで、
tell app "Finder"
icon of file "hoge" of disk "hogehoge"
end tell

とかすると、missing valueと言われます。
759751:03/03/12 22:07 ID:utAYb0lX
みなさま本当にありがとうございました!!!さっそく試してみて感動しました。
ただなぜかFinder上だと文字化けしてしまうので英文にして使用しております。
760名称未設定:03/03/12 22:51 ID:2/YkZYCL
質問れつ。
現在実行しているshell scriptのフルパスを取得するにはどうしたらいいでしょう?
px | grep 'スクリプト名' | awk '{print $6}'
みたいなのを作ったのですが、ディレクトリ名の一部に空白があると、
途中で切れてしまいます。
よろしくおなないしまつ。
761名称未設定:03/03/12 23:17 ID:L1eznqav
>>760
素人なんで適当に答えるけど
\(バックスラッシュ)で空白をエスケープしてやればいいんじゃないかと
間違ってたらすんません。
762732:03/03/13 02:24 ID:Z4S5MdXd
>>760
フルパスってのは分からないけど、$0 では駄目でつか
763762:03/03/13 02:30 ID:Z4S5MdXd
「732」を騙ってしまった。うつだしのう...
764名称未設定:03/03/13 03:33 ID:mDzeAKCq
>>761
できればいいんでつが、psからパイプした時、どうやってエスケープすればいいのか分からんのでつ。

>>762
最初、$6を$0二換えろの意味だと思ってやってみて、何じゃヽ(`Д´)ノフォルァ!!
と思ったんでつが、単純に、$0だったんでつね。できまつたぁヽ(´-`)ノありがとうさん!
もしかして、激しく初歩なんでつか?
だろうな…逝ってきまつ
765名称未設定:03/03/13 03:36 ID:jigpHGB4
AppleScriptなら
(path to me) as Unicode text

Perlだと実は、方法が無い??赤ラマ本にはそれっぽい事が書いてある。
766762:03/03/13 04:58 ID:Z4S5MdXd
>>764
ついでに、カコ悪い例。
ps | cut -d27-
ダサダサでつ。
767名称未設定:03/03/16 02:27 ID:f00xD2Y/
>>765-766 いろいろな方法が有りまつねぇ。お勉強になりまつ。

現在実行しているshell scriptのあるディレクトリへ移動する
という事をやりたかったので、こんなものになりまつた。

cd "`echo "$0" | sed -e 's/ScriptName$//'`"

何か、もっといい方法があるはず…と思い、

dirname "$0"

まで作ってみたものの、こっからどうやってcdに渡そうか?
パスに空白があると、cd: Too many arguments.とか逝ってくるし。
768できますた:03/03/16 02:39 ID:dkGFPpbO
>>767
cd "`dirname "$0"`"
769767:03/03/16 04:08 ID:Kv/Fym35
>>768
はぁ…(涙
実はそれ、やってみたんでつよ。でも、出来なかった。
今、改めて出来なかった理由を考えると、
いくつか試しに作ったコマンドを#でコメントし切れてなかったからだと。

あぁ、前回に引き続き、みんなごめんなさい&ありがとう(号泣
自分のヽ(`Д´)ノバカヤロウ!!
770名称未設定:03/03/22 00:24 ID:j9q7ktKV
iTune3なんですけど、

tell application "iTunes"
play playlist "プレイリストの名前"
off
end tell

上のスクリプトを作って、スクリプトエディタから、実行すると、うまくいくんですが、
実行専用、アブリケーションで保存し、実行すると、

program error
-1408

となって、動きません。なんでだろー
771名称未設定:03/03/22 00:40 ID:Y29wc3FY
>>770
ひょっとしてScriptEditor2.0?
ちがったらスマソ
772名称未設定:03/03/22 00:42 ID:7JAp3XQc
「別名で保存」でアプリケーション形式で保存したらOKだったりしない?
それならスクリプトエディタのバグかも。
773名称未設定:03/03/22 00:46 ID:Y29wc3FY
あとJapanese.lprojを作るとかも。
774名称未設定:03/03/22 01:06 ID:j9q7ktKV
770です。みなさん、レス、どうも。

今、OS9、iTunes2で、同じアプレット作ってやってみたら、
ちゃんと動きました。

>>771
今、0S9なんで、確認できないんですけど、OSX 10.2に付いてたヤツです。

>>772

それ、明日、やってみます。明日、仕事なんで、取りあえず、寝ます。
775773:03/03/22 01:49 ID:Y29wc3FY
> OSX 10.2に付いてたヤツです。
あ、だったら関係ないや。忘れてくれ。
776名称未設定:03/03/22 21:13 ID:j9q7ktKV
770です。

>>771

別名で保存でいけました。
実行専用で保存ってのは、なんなんだ。いらねぇじゃん、このメニュー。

しかし、最終目的の目覚まし代わりにiTunesを鳴らすってのは、
iBeeZzが、まともに動いてくれないので、挫折・・・。$8の損・・・。
777名称未設定:03/03/22 21:52 ID:RcmOlwD0
画面だけスリープさせてできない?
そうでなければOS9起動を利用するとか。
そういえば、OS 9側で自動起動を設定しておいて、起動ディスクはOS Xにしたらどうなるんだろうね?

実行専用っていうのは、中のスクリプトが編集できないよぅな形式で保存する時に使うもの。
778名称未設定:03/03/22 21:59 ID:j9q7ktKV
770です。
>>777

ええ、OSX完全移行はあきらめて、目覚ましのためにOS9の省エネ設定でタイマー起動、
起動項目に件のアプレットを入れて、目覚まし代わりにすることにしました。

>>そういえば、OS 9側で自動起動を設定しておいて、起動ディスクはOS Xにしたらどうなるんだろうね?

それ、今から実験してみます。OS9用のアプレットで、OSXで再起動ってのは作ってあるので、
これを起動項目に入れてみます。
779名称未設定:03/03/22 22:19 ID:j9q7ktKV
770です。

tell application "起動ディスク"
activate
set startup disk alias to alias "HDの名前"
set startup system folder alias to alias "HDの名前:System:Library:CoreServices:BootX"
end tell
tell application "Finder"
activate
restart
end tell

ってのを作って、OS9の起動項目に放り込んでみました。
OS9で立ち上がって、すぐにOSXで再起動してくれます。

ってか、>>777の意味違いますね。OS9で起動ディスクをOSXにして終了すると、
OS9の省エネ設定は無効になります。

780名称未設定:03/03/22 22:29 ID:eceObTTy
>>770
http://ibeezz.reboute.net/en/
これで、定時に「マシンを起動」して、プレイリスト再生したいわけ?
http://www.koch-schmidt.de/cronnix/
これではだめ?
多分「定時に起動」はできないと思うけど。
省エネルギー設定で、画面のスリープと「可能な場合、HDをすりーぷ」を設定して。

>>777
画面をスリープさせておくと、問題あるの?(よく知らなくてスマソ
781名称未設定:03/03/22 22:32 ID:2HqE2v62
>>778
もう$8追加してiSleep
782名称未設定:03/03/22 22:45 ID:j9q7ktKV
770です。

>>780

定時にiTunesのプレイリストを開ければ、スリープ解除とか
システム起動でなくてもいいんですけどね。
SoundJamには、タイマーあったのになぁ・・・。

>>781

ウチのMacは、スリープ関連が変です。スリープしてくれない時もあるし、
解除されない時もあるし。
783名称未設定:03/03/22 22:51 ID:Fo0Vpf7e
age
784名称未設定:03/03/22 23:19 ID:RcmOlwD0
スリープとかシステム終了とかさせなくてもいいんだったらAppleScriptでタイマー仕込んでもええやん。
>>780氏が言ってるように、cron系とかその他のタイマーアプリ使ってもいいわけだし。
てっきりウルサイ機種か、電気代もったいないかでMacを終了させたいのかと思った。

>>779
おお。それでうまく行きましたか。そのアイデアも考えてたんだよね。
それプラス、OS Xを終了する前に起動ディスクをOS 9に切り替えるようにしてれば大丈夫なのかな?
785名称未設定:03/03/22 23:33 ID:j9q7ktKV
770です。

>>784

勢いで聞いてちゃいますけど、AppleScriptのタイマーって、
なんか、例題みたいのないですか?


786名称未設定:03/03/23 00:21 ID:OIF0MdX8
いや、ようするにアイドルハンドラを使えばいいのよ。
で、自動的に終了しないにチェックしてアプリケーション形式で保存。
それをログイン時に起動する設定にしておけばよかんべさ。
例題はねえ。俺のサイトに一個あるけどコード読みやすいかどうかは保証できん(w

えーと、毎日同じ時間でいい場合、
・現在の時刻を取得
 ・もし目標の時刻ならば、この場合iTunes関係の処理
 ・もし目標の時刻でないならば、目標の時刻と現在の時刻の差を出す(date型同士の引き算は秒が出る)
  差の秒数をreturnする(その秒数後にアイドルハンドラが実行されるはず)


というような事をアイドルハンドラの中に書けばいいと思う。嘘やったらめんごー。
とりあえず一分後とかで作って試してみて。

property yoteinoJikan : date "2003.03.23 07:00"

on idle
set sabun to yoteinoJikan - current date
if sabun < 30 or sabun > -30 then
beep
activate
display dialog "時間じゃボケおきんかわりゃ"
else if sabun > 0 then
return sabun
end if
end idle
787名称未設定:03/03/23 00:22 ID:OIF0MdX8
あ、しまった。これだと特定の日付じゃねーと駄目か。
そのへんは工夫してくれ。
788名称未設定:03/03/23 03:43 ID:mGIfBlZY
ホームページを移転するのに、移転先のアクセスカウンターの
初期値を指定出来ない仕様の為、今のカウンター値をどうやって
引き継ごうか困ってます。
ブラウザで6万回再読み込みして数値を合わせるする根性があれば良いのですが・・・(w
AppleScriptかTerminalで、ある特定のURLに10秒間隔ぐらいで
6万回アクセスするようなスクリプトって書けますか?
みなさまのお知恵をお借り出来れば幸いです。
789名称未設定:03/03/23 03:46 ID:yc0cE30o
>>788
新しいアクセスカウンターのdatファイルを書き換えではダメなの?
790名称未設定:03/03/23 03:54 ID:OIF0MdX8
>>788
教えられん。
普通そういう場合心機一転ゼロからスタートだろ?で、横に+1903みたいに前の番号書くじゃん。
せめてどこのスペースでどのカウンタって事が書いてあれば、
で、あなたのサイトのURLでもあれば真実味があるけど。

あるいはあんたの替わりにオレが連続アクセスしてカウンタ回してもいいけど、
そこがあなたのサイトって保証もないし。
791名称未設定:03/03/23 03:55 ID:mGIfBlZY
>>789
プロバ標準のアクセスカウンタなんです(泣
今、手動で1000回程やったんですが、疲れ果てて
このスレッドにやってきました。
792名称未設定:03/03/23 04:03 ID:mGIfBlZY
>>790
じゃURL書いても本当に自サイトか信じてもらえそうにないですよね?(w
ちなみにプロバはOCNです。
793名称未設定:03/03/23 04:04 ID:3osImHmF
田代砲じゃダメ?
794名称未設定:03/03/23 04:07 ID:OIF0MdX8
>>792
プロバイダのスペースだったら制限ないだろうから、フリーCGIのカウンターとか使えるんじゃないの?
OCNってCGIダメ?

CGIが駄目でもレンタルカウンターが使えるんじゃないの?
795名称未設定:03/03/23 04:27 ID:mGIfBlZY
>>793
それは何ですか?

>>794
CGIダメなんですよ(泣
レンタルしかないのかな…トホホ
796名称未設定:03/03/23 04:41 ID:OIF0MdX8
荒しツール使うくらいならスクリプト勉強しなさい。>>793、スレ違いじゃ。
797名称未設定:03/03/23 04:46 ID:3osImHmF
796は頭でっかちのアフォ
肝要なのは使い方、使い道。
798名称未設定:03/03/23 05:32 ID:IbFVoZNQ
>>793

http://www.wisdomguild.net/2chMac/MagmaDuke6.5.1.sit.hqx

むかし漏れと知人で開発したMac用荒らしツール。
これをつかうと一秒間に30回ぐらいの連続投稿は出来る。
プロキシを次々に切り替えてアタックできるのでカウンタの連続
リロード対策も回避可能。
799798:03/03/23 05:33 ID:IbFVoZNQ
まちがった。

>>788へのレスね。
800798:03/03/23 05:36 ID:IbFVoZNQ
マニュアルはまだ作ってないので使い方は自分で考えるべし。
801名称未設定:03/03/23 11:40 ID:zlrwIDrS
シェルスクリプトで、
1.fetchでダウンロード
2.10秒眠る

を6万回繰り返すスクリプトを作れば解決。
802名称未設定:03/03/23 12:30 ID:dIfvtKmn
>>801
1週間かけてやるほどの事かね。(w
>>790 の「隣に書いとく」にハゲ堂。
803788:03/03/23 16:43 ID:VKYiWtyN
けっ!偉そうなことばかり言いやがって
こいつら結局作れねーのかよっ!…て一瞬思いましたが(w
こういうのって荒らしに転用出来るのですね。ごめんなさいでした。
790さんのアドバイス通り横に書いておきます。
798、801さんもありがとう。
804名称未設定:03/03/23 17:14 ID:zXMQpioW
>>803
荒らしどころか犯罪ですよ、DoSって。
805えろす:03/03/23 17:44 ID:66j+BODg
Safaiで文字化けページを表示するスクリプト

--2sjis.cgi--
#!/usr/bin/perl
require "jcode.pl";
$html_text = `curl -s -S $ARGV[0]`;
@html = split(/\n/,$html_text);
print "content-type: text/html\n\n";
foreach (@html) {
&jcode::convert(\$_, "sjis");
print $_;
}

--2sjis--applescript--
tell application "Safari"
set CurURL to URL of document 1
set SjisURL to "http://localhost/~username/2sjis.cgi?" & CurURL
set URL of document 1 to SjisURL
end tell

使い方
jcode.plをインスコ
上のperlスクリプトに実行権限をつけて、~/Sites/において
httpd.confなりをいじってcgiを実行可能にして
下のapplescritpから呼び出し。相対リンクは駄目だけど。
806名称未設定:03/03/23 19:19 ID:dIfvtKmn
>>805
> http://localhost/
ってローカル鯖を有効にする必要あるのね。
file:///localhost/
じゃ駄目かね?
807名称未設定:03/03/23 23:17 ID:edH9tdv+
>>806
file:///localhost/
だと、ファイルがテキストして表示されるだけで、
実行されないのでショボーン(´・ω・`)です。
ローカル鯖はシステム環境設定の共有でチェックするだけだけど
セキュリティ上の不安ですか?

ローカル鯖立てないでやる方法もあるけど、
s-jis変換→テキスト書き出し→Safariでopen
遅いし面倒なんで、誰か作って下さいです。
808名称未設定:03/03/24 01:02 ID:FlvKhDkl
質問です.例えば
aaaahttp://www.apple.co.jpaaaaa
と言う文字列を,
aaaa<A HREF=http://www.apple.co.jp>http://www.apple.co.jp</a>aaaaa
とかえたいのですが,どのようにしたら良いのでしょうか.
Bシェルでお願いします.
809名称未設定:03/03/24 01:19 ID:DLJwzPKf
それはBシェルじゃなくてsedとかgawkでサクッと作れると思うけど。

どうでもいいけどgawkって何回見てもガウォークって読んで「はぁ?」って顔される。
810808:03/03/24 01:33 ID:FlvKhDkl
あ,sedをBシェルで使う場合という意味でした.すいません.
そうですか...簡単ですか...正規表現の理解がいまいちでしたので...
811名称未設定:03/03/24 01:41 ID:9rYs/RTJ
>>808
その例に限って言えば正規表現を使っても簡単ではない。
理由はURLの終端が容易に判断できないから。
812名称未設定:03/03/24 01:55 ID:gfWg/aA2
>>810
決まったドメインで、他の文字列も予測出来るなら簡単だけど、
汎用性持たせるとなるとかなり難しい。つーか無理。

最低でも、切り出した文字列がURIとして正しい事を検証出来ないと。
それでもaaaの部分に.comとか入られると終了。

808の例で、.jpに限定して、aaaにあまり変な文字入らない事を前提にすれば
s!\(http://.*\.jp\)!<a href=\1>\1</a>!
をsedに食わせれば一応逝ける。
813810:03/03/24 02:30 ID:FlvKhDkl
>>811
>>812
ご指導ありがとうございます.
置き換えようとしている文字列は固定ではないURLなので難しいそうですね.
でも,例えば2chのCGI(Perl?)スクリプトだと,見事に置き換えができていると
思うのですが,ちょっと不思議です.
すいみません.Perlの知識は全くないもので...
814名称未設定:03/03/24 02:57 ID:jWJeF/wy
>>808は見事に置き換えはできてませんが…。
815名称未設定:03/03/24 07:12 ID:i1qoxeJ0
2chブラウザとか2chや他の掲示板のCGIが具体的にどうやっているのか知らないけど、
ネットに簡易的なものからややこしいものまでURLを表す正規表現のパタンがころがってるので
たとえばオレならPerlでそういうものを作る事はできん事も無い。
つか、ドラッグ&ドロップでエロ画像のURL抜き出すやつみたいなん作ったりした。
(エロ画像と限定すれば終端が.jpgだから簡単なんだけどね)

まあ見てみなせえ。
ttp://www.google.co.jp/search?q=URL+%90%B3%8BK%95%5C%8C%BB&ie=Shift_JIS&hl=ja&lr=
816 :03/03/25 11:47 ID:uN0ll+6a
http://versiontracker.com/dyn/moreinfo/macosx/17392
Audio Recorderってフリーのmp3録音出来るソフトなんですけど、アップルスクリプトで予約録音なんて可能なんでしょうか。
817名称未設定:03/03/25 18:39 ID:gn5fA66l
>>816
ん?初心者スレのヒトかい?
AS対応ソフトらしいから、できると思うけどなぜかジャガー以降対応なので10.1.5のオレは試せんのだよ。
スマソ。

cron系と言われるOS X用のタイマーソフトと組み合わせれば簡単かもしれないから、
組み合わせられるものがないか探してみてはどうかな?
818名称未設定:03/03/25 18:45 ID:TMCC0bei
>816
まずは、Audio Recorderの用語辞典をみる。
あとは、用語辞典とにらめっこする。

AppleScriptに対応してなかったら、AppleEventを直接書いて、
AppleScriptで、できる場合もあるが、それは、むずかしい。

なので、やっぱり、用語辞典と、にらめっこする。

あとは、自分の頭をつかって、つくる!
君のアイデア次第だ!
819 :03/03/25 18:53 ID:uN0ll+6a
>817,818
ありがつぉう。
初心者の粋にも踏み込んでない状態なんですよ。

スクリプトがついてて、それで録音は出来るように見えたんで、録音予約できたらいいなぁと思った次第で。

タイマーソフトを探して、試行錯誤してきます。
820 :03/03/25 22:04 ID:uN0ll+6a
CronniX_2.1iってソフトで、AudioRecorderについてるスクリプトを実行させたらOKっぽいです。
スクリプトを実行専用で保存したらエラーが出て実行できないけど…。
勉強してきます…。
821名称未設定:03/03/25 22:08 ID:gn5fA66l
実行専用じゃなくて、別名で保存でアプリケーション形式でどうかな?
822 :03/03/25 22:16 ID:uN0ll+6a
出来ました!!!!!!!!!
ありがとうございます!

aifだとタイマー録音できるフリーソフトなどがあるんですが(昼の歌謡曲やAudio In)、mp3でタイマー録音できるフリーソフトは無いから出来たらいいなぁと思ってたんですよ。
823名称未設定:03/03/26 23:07 ID:GzRoZ0cp
初歩的な質問で申し訳ありませんが、
OS9のAppleScriptで、

tell application "モニタ"
set monitor depth 16
tell application "モニタ" to quit
end tell

↑のようなものを作って利用していたのですが、
OSXの場合は、どうすればいいんでしょうか?
824名称未設定:03/03/28 09:10 ID:lOypUbfr
すみません、初心者スレに書いたのですが、こっちに行くよう
促されたので質問させてください。
OSXで
「ドロップした複数フォルダの中の全てファイルのロックを
解除する」
というスクリプトを書きたいのですが、
on open droppeditems
tell application "Finder"
repeat with obj in droppeditems
set locked of obj to false
end repeat
end tell
end open
では、当たり前ですが動作しません。
フォルダ内のファイルへのアクセスにはどのような記述が
必要なんでしょうか?
825名称未設定:03/03/28 10:00 ID:/vQkAfsG
>>823
今のところ標準ではAppleScriptでモニタ階調を変更することは出来ません
もしかしたらOSAXでできるかもしれないので探してみてはどうでっか

>>834
うちの環境ではこれでいけた

on open droppeditems
tell application "Finder"
repeat with obj in droppeditems
set locked of every file of obj to false
end repeat
end tell
end open
826名称未設定:03/03/28 10:58 ID:4XXiCVbm
>>823
ぐぐってみますた。
10.2以降のAppleScript1.9に、monitor depthって用語が含まれてるらしいす。
今わたしが10.1.5なんで試せないんですけど、調べてみてください。

たぶんStandard Additionsに含まれるんじゃないかと。
827名称未設定:03/03/28 12:35 ID:YSUvACfZ
全てのfontのfullnameを取得する方法を教えてもらえませんか?
828名称未設定:03/03/28 18:40 ID:lOypUbfr
824です
ありがとうございました。
every file of objでパスを通すのですか。
あれやあこれや長ったらしいのを書いてました。
まだまだ勉強です、、
829名称未設定:03/03/28 20:26 ID:4XXiCVbm
>>825,828
うち(10.1.5)で試すと、ドロップしたのがフォルダの場合、直下のファイルが処理される。
>>824がやりたい事をやろうと思ったら、再帰呼び出しを使わないとだめだと思う。
ただし、処理対象のフォルダ入れ子の数多いとスタックオーバーフロー(w

OS 9だと賢い書き方があるんやけどね。
830名称未設定:03/03/28 21:35 ID:4XXiCVbm
>>825
勉強になりました。
OS XのFinderで、ドロップしたファイル、フォルダ、フォルダの中の全てのファイルを処理するスクリプトが書けました。
folderの中身(elements?)としてのevery fileには反応してくれるのね。

property kagi : false

on open dropList
tell application "Finder"
repeat with aFile in dropList--ここが不細工
try
set locked of aFile to kagi
end try
end repeat
end tell
my tojimari(dropList)
end open

on tojimari(theFolders)
tell application "Finder"
repeat with obj in ObjectList
set locked of every file of aFolder to kagi

set theFolders to {}
set theFolders to every folder of aFolder
if theFolders is {} then
else
my tojimari(theFolders)
end if
end repeat
end tell
end tojimari
831823:03/03/28 21:54 ID:dl5MBjCX
レスをくださった方々、ありがとうごさいます。

OS9で作ったモニタ階調を変えるアプレットをOSXで起動するとクラシックが立ち上がって、
そこでモニタ階調をかえてくれるのですが、
同じスクリプトをOSX10.2に付属のスクリプトエディタで新規に作ると、
「アプリケーション"モニタ"は、どこにありますか?」と訊いてくると思ったら、

set monitor depthのとこで、この"identifier"の後に"identifier"を書くことはできませんというエラーになりました。

う〜ん、変なの。

OSXのコンパネ系は、レコータブルじゃないから、不便になったなと思う、週末。
832名称未設定:03/03/29 02:57 ID:+jtwqOS3
おーい。みんな。(つってもこのスレ人口少なそうだが。今AS系MLも人少ないよね?)
新しいもの好き見た?
ttp://www.fsight.co.jp/products/uibrowser/info.html

これなんだけどさ。
いつもAS関係の製品をいろいろ出してるフォーサイトから、
OS X 10.2.3以降のGUI Scriptingを補助するツールが出るってさ。
ただいまお試し版がDLできます。

>>831
それはmonitorが予約語として認識されなかったから、
ユーザー定義の変数だと仮定してコンパイルしようとすると、変数の後にスペースが来てまた変数が来るのがヘンってことね。
833名称未設定:03/03/29 03:20 ID:bwlPGuDS
おりはZDnet:macでみた。
いくらなんだろ?
834名称未設定:03/03/29 10:41 ID:ksPhI8N0
>>833
UIBrowserをダウソしてみた。
\18.000だった。やめとこと思った。
835名称未設定:03/03/29 15:52 ID:+jtwqOS3
自前でUI Scriptingやってる人います?
おれまだ10.2入れてないので試せてないのですが。

かなり面倒なものなんですかね?
手間が省ける具合によっては買う人は買うでしょうね。
以前ネットで株やってるASの初心者って人で、
プレファブとかあっさり買う人いたし。。

そのうち、スクリプター側から競合するツールも出そう。
836名称未設定:03/03/29 19:14 ID:wN2MGgp9
>>834
$24.95の物を16,000円で売るとはぼったくりですな。
837名称未設定:03/03/29 22:05 ID:Bwgn7hsc
GUI Scripting
http://www.apple.com/applescript/GUI/
にサンプルあるよ。
文字を打つのなら
keystroke "very easy"
キーボードショートカットなら
keystroke "q" with command down
とか簡単ですよ。
ただ
click 「対象」
の様の場合「対象」がわかりにくい。
それを簡単に調べるのがUI Browser。
それだけにしては値段が高いのでそれ以上の機能もあるのか?

カーボンアプリも操作できました。
838名称未設定:03/03/30 00:09 ID:CcWbLwPH
わかりにくいけど、調べることは可能なんでしょ。
839名称未設定:03/03/30 01:38 ID:buPeUeka
いかのようなかんじで、マウントするのですが、
mount volume "OS9 HD" on server "OS 9 Mac"
  in Appletalk zone "*" as user name "DS" with password ""
うまくいくときとうまくいかないときがあります。
うまくいかないときは、サーバをさがしているみたいな、ダイアログが
数秒でたあとに、エラーダイアログでて、それっきりです。

OSは、りょうほうとも、10.2.4ですが、
マウントされる側が、powerbookで、ネットワークからきりはなして、
再接続したあとに、問題が発生するみたいです。

スクリプトが動かない場合でも、
手動で、マウントすれば、マウントできるのですが、
この問題を解決する方法は、あるでしょうか。
840名称未設定:03/03/30 02:00 ID:1kvOO2Nx
UI Inspector使えば何とか自作できるよ
841名称未設定:03/03/30 03:19 ID:eMuWkLbe
OS XでOS 9のアプリを起動しようとしてしまったりする問題で手詰まり。

OS X用とOS 9用のスクリプトを分けて、それぞれのスクリプトに記憶されるアプリが違うようにすれば
うまく行くかなーなんて思ったら
今度はOS 9でOS X用のスクリプトが起動されてしまって無意味。
そりゃそうだ。カーボンだもんなー。。

どうすりゃいいんだ。。。
842名称未設定:03/03/30 03:23 ID:KFhPUpFY
>>841
自分だけの専用スクリプトにするつもりなら、
クリエイターコードをX用アプリと9用アプリで変えてしまえば?
843名称未設定:03/03/30 03:41 ID:eMuWkLbe
>>842
ところが配布用なんですよ。。
しかも、OS 9とOS Xで共用する事を目的にしたシロモノなので、クリエーターコード変えると意味ない。。
いちおうクリエーターは申請済み。

今のところ考えている対策は
1.OS X版はAS StudioでCocoaにする。うまくいったとしても10.1.5未満では動かないものになる。

2.スクリプト内部でOSのバージョン判定。ちょっと遅くなるかも。
  一つのファイルに収めてしまうと、
  そもそもの目的である『OSによって呼び出すアプリを分ける』がうまくいかないかも。
844名称未設定:03/03/30 16:45 ID:Rca9nfii
>>832
 Prefab直で、英語版を購入して使ってます。
 (カード番号の送付がメールかFAXなのが萎。いまどき)

 値段が同じ程度ならともかく、わざわざ日本語版を買う必要は
ないと思います。
845名称未設定:03/03/31 23:08 ID:R609XS4B
ドロップしたフォルダ名からヘッダを取得して、フォルダ内の
ファイルに_でつないで連番ファイル名(中身は01.02等の数字のみの連番)に変換したいのですがどうすれば良いのでしょうか?
846名称未設定:03/03/31 23:26 ID:1xMwU06Q
できることはできるけど、
>ドロップしたフォルダ名からヘッダを取得して、
ここをもっと具体的に書いてくれないとできない。
847845:03/04/01 00:16 ID:q+p13NJ1
>846
ドロップしたフォルダには、例えば「sample」という名前が付いていて
中のファイル「01.tif」を「sample_01.tif」という具合に変更したいのです。
848名称未設定:03/04/01 00:57 ID:mhoX6HWK
on open theItemList
tell application "Finder"
activate

repeat with theItem in theItemList
set theFileList to every file of theItem
repeat with theFile in theFileList
set name of theFile to (name of theItem) & "_" & (name of theFile)
end repeat
end repeat
end tell
end open

こんな感じかな。
849名称未設定:03/04/01 01:04 ID:16qr45I2
& "_" &

顔文字に見えた。すいません。
850名称未設定:03/04/01 05:52 ID:B+LmkY+v
例えば、福助?

ttp://www.fukusuke.co.jp/
851845:03/04/01 06:19 ID:q+p13NJ1
>>848
ありがとうございます。
on open drop_items
ではないのか・・・
ご教授を参考にさらに精進いたします。
852名称未設定:03/04/01 06:32 ID:T0MERlSM
>>851
on openの後に来るのは変数だから何でもいいよ。

今でもできるか知らないけど、
on open |ドロップされたもの達|

なんて事も昔はできた。それ以前は完全に日本語でも記述できたけど(w

変数名は変数名とわかりやすいように、名前のつけかたにルールを作ったりするとよいらしいが。
853845:03/04/01 07:50 ID:q+p13NJ1
今一つ、
「ドロップされたアイテムはobjという変数に収められる」というのを
読んだのでrepeat with の後にobjを入れてました。
教えていただいた例文ではこちら側で定義したtheitemlistの前半部分theItemを記入してます。
これはアップルスクリプトではどういう処理をしている事になるのでしょうか?
854名称未設定:03/04/01 09:57 ID:ikwh7zPt
>>853
>ドロップされたアイテムはobjという変数に収められる

このobjも変数名ですから
「obj」という単語にこだわる必要はないです
そのスクリプトを記述した人の自由です
objとか、theFileとか、theItemとか、スクリプトの動きは同じです
855名称未設定:03/04/01 15:38 ID:T0MERlSM
>>853

>>848さんの場合、

> repeat with theItem in theItemList

のところで、リスト型の変数であるtheItemListから、
項目を一つずつtheItemという変数に取り出しながら使いますよという事になっている。

Perlで言うと
>foreach $aFile (@ARGV){
と同じようなもん。こっちも$aFileは$aObjとかでも何でもようござんす。

と言ってもわからないか。『アップルスクリプトでは』と書かれると、
何にたとえるとわかるかな?とか思うのだけど、
がんばって基礎の習得してください。
856845:03/04/02 00:35 ID:btuts2Sn
>>854さま、855さま
perlは全く分かりませんが、ご説明で理解できました。
本当にありがとうございます。
やりたいことはいっぱいあるので頑張ります。
857名称未設定:03/04/05 01:02 ID:zavd8LsW
GUI Scriptingって日本語のメニュー使えませんよね?
使えてる人います?
858名称未設定:03/04/05 01:20 ID:icd0oaGH
>>857
使える。
何のアプリでどんな操作したいか書かないと、これ以上の答えは無いと思われ。
859857:03/04/06 18:53 ID:EQg81UUw
>>858 レスサンクスコ
特に何がしたいわけじゃないんですが、
http://www.apple.com/applescript/GUI/#1001
のサンプルスクリプトで
do_menu ("Finder", "Finder", "Finderについて")
ってやると上手く行かないんです。返り値はtrueだけど
ウィンドウが開かない。

do_menu ("Script Editor","Script Editor","About Script Editor")
だと上手く行くんだけど
根本的に間違ってますでしょうか?ご教授下さい。
860名称未設定:03/04/07 00:05 ID:Abxh9XIF
>>859
r と に がくっつきすぎでは
861857:03/04/07 21:41 ID:QxksW5DK
>>860
一番簡単なもので試したつもりが・・・。アリガトン
板汚しスンマソ
862名称未設定:03/04/07 22:39 ID:wFMoad4B
すいません。AppleScript Studioの事で質問です。

普通のスクリプトの場合、

load script file "ファイル名"

で、同じフォルダの中にあるその名前のファイルのスクリプトが読み込めたんですけど、
AppleScript Studioの場合どうしたらいいんでしょうか?

パッケージ内のファイルをロードするコマンドとか用意されてればいいんですけど。。
863名称未設定:03/04/10 00:59 ID:cFmMiD/c
単語を入力してSafariにgoo辞書を開かせるスクリプト、
英和辞書のみ作ることはできました。

tell application "Finder"
activate
set DialogReply to (display dialog "単語を入力" buttons {"Cancel", "OK"} default button 2 default answer "")
set theWord to text returned of DialogReply
end tell
tell application "Safari"
activate
set dic to "http://dictionary.goo.ne.jp/search.php?MT="
set dic2 to "&ej.x=22&ej.y=8&kind=&mode=0"
set URL of document 0 to (dic & theWord & dic2)
end tell

和英・国語辞典もつくりたいのですが、日本語を入力する場合、
「%」とかがズラズラ並ぶ形でアドレスに出てきますよね?
あれはどういう風に変換されているのかわからず、行き詰まってます。
それとも、違うアプローチの仕方があるでしょうか?
どなたか親切な方、教えて下さい!
864名称未設定:03/04/10 01:08 ID:B6q4Yuyx
『URLエンコード』です。

Perl通せばできるはず。
OS 9だとTanaka's OSAXでできます。
865863:03/04/10 01:20 ID:cFmMiD/c
>>864
レスありがとうございます!
が、perl全然わからないのです(T_T)
OSXの同じようなOSAX…ないですよねぇ。
どこかでperl勉強してみます。
866名称未設定:03/04/10 01:29 ID:B6q4Yuyx
>>865
URLエンコードでぐぐるよろし。
867名称未設定:03/04/10 01:33 ID:B6q4Yuyx
とりあえず、Coelaの飯森さんとこに行くと、OS X用のOSAXがいろいろあるんだけど、
URLエンコーディングは扱ってなさそう。
868名称未設定:03/04/10 01:42 ID:D9xhrxd9
>863
ほれ。
% cat urlencode.pl
#! /usr/bin/perl
while(<>){
print &URLe($_);
}

sub URLe{my $URLencode=shift;
$URLencode=~s/([^0-9A-Za-z_ ])/'%'.unpack('H2',$1)/ge;
$URLencode=~s/\s/+/g;
return $URLencode;
}
--ここまで
ただ、変換前の漢字コードが何であるかと言うのはちゃんと把握しないと
まずいんちゃうかと。
ちなみに、Tanaka's OSAXだとPack CGIとかいう命令だった記憶が。
AppleScriptリファレンスに田中先生がご自分で書かれた解説があったと
記憶しております。
たしか
MT Pack CGI{{"name","田中"},{"message","がんばれAppleScript"}}
とかすると
name=%93c%92%86&message=%82%aa%82%f1%82%ce%82%eaAppleScript
って返すんじゃなかったかと。
86986:03/04/10 06:33 ID:cFmMiD/c
皆さんレスありがとうございます。
あちこち読んできましたが、気が遠くなりそうです…
と思いきや、868さんのレスが!m(__)m
おかげさまで一連の動きはできるようになったのですが、
やはり日本語が化けていて、違う結果が出てしまいます。
ということは、後は「変換前の漢字コード」の問題だけですよね?
どこかを変えれば完成するはずなのか…
なんとか読み解いてみます。
このスレに感謝!
870863:03/04/10 06:35 ID:cFmMiD/c

すみません、86でなくて863です…
871名称未設定:03/04/10 13:53 ID:B6q4Yuyx
868さんのはShift-JISからの変換なのかな?
これを、EUCからにすればいいのかも。
872えろす:03/04/10 19:40 ID:0yD9wDU/
>>862
遅レスだけど
パッケージの中のContentsフォルダにスクリプトを入れて
set thePath to (path to current application)
でアプリのパスを取って、":Contents:scriptfile"を付け加えて
loadしてみてください。ASSってコンパイルが面倒なんで、
試してないけど(=レスが付きにくいのかな)
873名称未設定:03/04/10 19:51 ID:B6q4Yuyx
>>872
レスありがとうございます。
その場合、パスの中途に日本語が入っていても大丈夫なんですかねえ?
試してみます。
874名称未設定:03/04/13 03:22 ID:PeQ3pUIm
すいません。質問です。


あの、、。ひょっとして、AppleScript Studioって、propertyに値の保存ができないんでしょうか??


なんか、私に必須の方式がみんな封じられてる。。
875山崎渉:03/04/17 15:59 ID:3OJTuVau
(^^)
876えろす:03/04/18 01:00 ID:vbBWpfAJ
>>874
あいかわらずの遅レスですが、propertyで値を保持するのはアプリ終了
までです。終了するとアボーンです。

んで、かわりにuser-defaultっていうClassができました。
初期設定ファイルを作って保存、読み込みなんかを担当します。
一対一でしか保存できないから変数のみだけど。
ttp://www1.odn.ne.jp/~cge02410/studio/tutorial/sample007.html
ここで非常に詳しく解説しています。

リストなんかを保存したい場合は、リスト←→テキストのハンドラを用意
すると楽です。鳶さんの所のTipsがオススメです。
ttp://homepage1.nifty.com/ton_b/AppleScript/Tips/String/Read.html
拙作ASDもこの方法で保存しています。ソース付きでダウソできますんで、
過去レス見てください。
877名称未設定:03/04/18 01:04 ID:wAWd4NiW
>>876

ありがとうございます。。
でもそれって結局、テキストしか保存できないんですよね?
たとえば、コンパイル済みのスクリプトオブジェクト、なんて、保存できないんですよね。
どうやら根本的に考え方を変えないといけないようです。
ありがとうございました。
878山崎渉:03/04/20 04:01 ID:cmWeWGJ9
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
879名称未設定:03/04/20 05:40 ID:5qUJ7i2v
良スレ保守
880名称未設定:03/04/20 10:51 ID:yeTwUCBH
safariの新しいバージョンでダウンロードウインドウが取得できなくなった。(´・ω・`)
881名称未設定:03/04/22 01:21 ID:/YWR9s1Y
MacIEで「PDFの保存」やるには、どうしたらいいんでしょう?
tell application "Internet Explorer"して
PrintBrowserWindow
したあとがわからないのです。
ファイル名を指定して「PDFとして保存」をしたいんだけど。
知ってる人いたら教えて下さい。

882名称未設定:03/04/22 02:02 ID:IPUZSddm
AppleScriptで自動でボタン押させるヤツが出ただろ、最近
http://www.apple.com/applescript/GUI/
これでやれば行けるか?
883名称未設定:03/04/22 02:05 ID:4znjhZTt
ttp://www.apple.com/applescript/print/


これ関係ない?
884名称未設定:03/04/22 14:57 ID:0EnDVF1M
以前お世話になった863です。
文字化けが未解決のまましばらくいじれていなかったのですが、
久しぶりにあれこれ探ってみたところ、根本的に間違っているらしいことが判明。
Safariに入力された単語はunicode-8で化けているようです。
「868さんの叡智」の使い方を誤っていて、何の処理もされていないらしいので、
その後もあちこち見ながら手探りで改善を試みるも、変わらず。
何かめちゃくちゃなことをしているはずですが、どこがマズイのかすら分かりません…
どなたかお助け下さい!

tell application "Finder"
activate
set DlgRply to (display dialog "単語入力" default answer "")
set theWord to text returned of DlgRply
set pcmd to "#!/usr/local/bin/perl" & return & "while(<>){print &encodeurl}; sub encodeurl{my $str=euc; $str=\"" & theWord & "\"; ツ
$str=〜s/(\\W)/'%'.unpack('H2',$1)/ge; $str=〜s/\\s/+/g;"
do shell script "perl -e '" & pcmd & "'"
tell application "Safari"
activate
set dicje to "http://dictionary.goo.ne.jp/search.php?MT="
set dicje2 to "&je.x=49&je.y=15&kind=ej&mode=0"
set URL of document 0 to (dicje & theWord & dicje2)
end tell
end tell
885名称未設定:03/04/22 15:01 ID:4znjhZTt
>>884

Perlの改行はLFじゃないと駄目だから、スクリプト内部に書くのではなく
テキストファイルに書いておいてそれを実行させるのが無難かと。
886868:03/04/22 23:12 ID:bFWFy6Ig
????????^^;;;;;
????
on urlencode(aWord)
return do shell script ("echo -n " & aWord & "|perl -ne 'shift;s/([^0-9A-Za-z_ ])/\"%\".unpack(\"H2\",$1)/ge;s/\\s/+/g;print;'")
end urlencode
???????????10.2.5?????????????do shell script?
???UTF-8??????????????????????.....

??????????
my URLEncode("????")
????????Safari?Google Search????????????????????
????????(%?????)??????????????????????

urlencode??%e3%82%b5%e3%83%95%e3%82%a1%e3%83%aa
Safari????%E3%82%B5%E3%83%95%E3%82%A1%E3%83%AA

????URL???????&ie=UTF-8&oe=UTF-8?????????????????
????URLEncode?????????UTF-8????????????X?AppleScript?
????????UTF-8????????????????????????
OK??863

???Shift JIS?EUC??????????????nkf??????????|perl???
nkf -s ??nkf -e????????.........?????????????
?google???????????????????????????
887868:03/04/22 23:50 ID:bFWFy6Ig
しまった^^;;;Safariでバケラッタ。
on urlencode(aWord)
return do shell script ("echo -n " & aWord & "|perl -ne 'shift;s/([^0-9A-Za-z_ ])/\"%\".unpack(\"H2\",$1)/ge;s/\\s/+/g;print;'")
end urlencode
でどうか?って話と、do shell scriptで日本語を扱うとUTF-8になる話を書いたんだが。
で、SJISやEUCを使いたければ、nkfを入れて
return do shell script ("echo -n " & aWord & "|/usr/local/bin/nkf -s|perl -ne 'shift;s/([^0-9A-Za-z_ ])/\"%\".unpack(\"H2\",$1)/ge;s/\\s/+/g;print;'")
return do shell script ("echo -n " & aWord & "|/usr/local/bin/nkf -e|perl -ne 'shift;s/([^0-9A-Za-z_ ])/\"%\".unpack(\"H2\",$1)/ge;s/\\s/+/g;print;'")
とかすればいいよ、と。
888名称未設定:03/04/23 17:46 ID:M/zGeJm9
いままでOS9でSandi's AdditionsというOSAXを使用してました。
OSXで同様にXYの特定位置をクリックできるOSAXを御存じないでしょうか?
もしくはOSAXを使わずに同様のことが出来れば教えて下さい。
889名称未設定:03/04/23 18:35 ID:hLHF75QK
>>888

www.apple.com/applescript/GUI/
890884:03/04/23 21:03 ID:hn1wY73V
>>886
レスありがとうございます。
これ、868さんのスクリプトの「#!」以降を
単なるテクスト書類で保存して置いておくので合ってますか?
前に何度か試していたのですが、呼び出し方が悪いのか、置き場所が悪いのか、
その度「見つからねーよ」と愚痴を言われてストップしてしまい、あきらめていたのですが。

>>887
再度ご教授感謝します。
それぞれ試してみたのですが、やはり変わらない…(T_T)
イベントログを見ると、素通りしているのです。
そもそも884での使い方、あれでOKだったのでしょうか?
今回のは、Finderに対しては一度end tellして、
Safariへの命令の手前に挿入する形でいいのですよね?

あ〜難しい(^^;)
でも何やら面白くなってきたので、もう少しねばってみます。
891868:03/04/23 23:54 ID:n6aWwM7s
>これ、868さんのスクリプトの「#!」以降を
>単なるテクスト書類で保存して置いておくので合ってますか?
残念ながらちゃう。サブルーチンで書いていたのを素で書いているのと、while(<>){〜}を省略するために-nオプションを付けただけ。
>そもそも884での使い方、あれでOKだったのでしょうか?
もとのスクリプトを見ると、theWordにスクリプトの結果を代入してないので素通りしてるように見えるんだと思う。
さて。
on urlencode(aWord)はAppleScriptのハンドラとして、君のスクリプトに入れとくのだ>868=884=890
サイトを見たが、Encode前の漢字コードはEUCみたいなので、perlに渡す前にEUCにしてしまおう。
on urlencode(aWord)
return do shell script ("echo -n " & aWord & "|/usr/local/bin/nkf -e|perl -ne 'shift;s/([^0-9A-Za-z_ ])/\"%\".unpack(\"H2\",$1)/ge;s/\\s/+/g;print;'")
end urlencode
だな。nkfのインストールは自分で調べるように:-)。あとは884のスクリプトで
set URL of document 0 to (dicje & theWord & dicje2)を
set URL of document 0 to (dicje & my urlencode(theWord) & dicje2)
にすればいいんでないかい?やってみよう.......うん、出来たっぽい。
property dicje : "http://dictionary.goo.ne.jp/search.php?MT="
property dicje2 : "&je.x=49&je.y=15&kind=ej&mode=0"
on run
tell application "Finder"
activate
set theWord to text returned of (display dialog "単語入力" default answer "")
end tell
tell application "Safari"
activate
open location (dicje & my urlencode(theWord) & dicje2)
end tell
end run
on urlencode(aWord)
return do shell script ("echo -n " & (aWord as Unicode text) & "|/usr/local/bin/nkf -e|perl -ne 'shift;s/([^0-9A-Za-z_ ])/\"%\".unpack(\"H2\",$1)/ge;s/\\s/+/g;print;'")
end urlencode
でどうだ。
892名称未設定:03/04/24 10:12 ID:2/e4+R8v
こんにちは。

テキストファイルを作成したのち、そのファイルのクリエータ、ファイルタイプを設定するという

なんでもないスクリプトが、OS X 10.2.5にしたらスタックオーバーフローのエラーになりました。

再起呼び出しは使ってないし、10.1.5では何事もなく動いてたんですが。。(T_T)

同じような経験したかたいらっしゃいませんか?
893名称未設定:03/04/24 19:01 ID:CkA0cbOy
>> 892
そのスクリプトを貼らなきゃレスつけようがないんじゃない?
894892:03/04/24 22:53 ID:2/e4+R8v
お許しが出たので、エラーが出る部分にしぼったスクリプトを貼らせていただきます。

--ここから

tell application "Internet Explorer"
Activate
set newFile to choose file name with prompt "" default name "JIKKENN.txt"
end tell

set kami to open for access newFile with write permission
write "hogehoge_jikkenn_desu" to kami starting at eof
close access kami

tell application "Finder"
set creator type of newFile to "ttxt"--エラーが出てEditを押すとここが反転
set file type of newFile to "TEXT"
end tell

--ここまで
895892:03/04/24 22:56 ID:2/e4+R8v
続けて、スクリプトエディタからの実行時のログです。

--以下

tell application "Internet Explorer"
Activate
--> 45
choose file name with prompt "" default name "JIKKENN.txt"
--> file "MacHD:Users:syuu:Desktop:JIKKENN.txt"
end tell
tell current application
open for access file "MacHD:Users:syuu:Desktop:JIKKENN.txt" with write permission
--> 90
write "hogehoge_jikkenn_desu" to 90 starting at eof
close access 90
--> スタックオーバーフローです。

--以上

よろしくご指導お願いします。
896892:03/04/24 23:17 ID:2/e4+R8v
>>894

自己レスです。

tell app "Finder"
set creator type of (newFile as file) to "TEXT"
end tell

という風に、as fileを付けてやると大丈夫なようです。
ちなみに、info for newFileなどは何の工夫もなく通ります。
なぜスタックオーバーフローなのか?それは謎です。
たぶん単なるバグです。
897884:03/04/25 00:06 ID:qfMyZbzm
>>891=868様
ここまで手取り足取り教えていただいて、感謝の言葉もありませんm(_ _)m
初めてターミナルを動かして必死の思いでnkfを入れ、
891のスクリプトをありがたく頂戴してコピペ、実行…
…って、まだ化けるんかい!
ログを見るとエンコードは実行されているのですが。
例えば「林檎」と入力すると、Safariでは「譫玲ェ」の検索結果が開くのです。
ログ内のエンコードの結果は"%eb%fe%ce%e8%a5%a7"
(結果ページのアドレス内では"%20%eb%fe%ce%e8%a5%a7"で、なぜか"%20"が足されます)、
ページから直に入力した場合の正しい検索結果のアドレスだと"%CE%D3%B8%E9"???
いただいたスクリプトを解読するのがやっとの初級者には、
何が起こっているのか、もう訳分かりません…
898868:03/04/25 00:43 ID:8sHvv3gn
>897
ああ、俺も最初なったよ>%20
%20ってのは空白(" ")です。コピペだと
property dicje : "http://dictionary.goo.ne.jp/search.php?MT="
の前後に空白が入ってしまうのが原因っぽい。スクリプトエディタで良ーく見て、
空白を削除してみよう>897
899868:03/04/25 01:21 ID:8sHvv3gn
%eb%fe%ce%e8%a5%a7
は、
echo -n 林檎|nkf -S -e|urlencode
とした時の結果と同じ。実際の入力はUTF-8なのに、Shift JISと判断されてしまった、
あるいはShift JISを明示的に指定した(-S)時に%eb%fe%ce%e8%a5%a7になる。
これを回避するには、AppleScriptの中で
/usr/local/bin/nkf -e

/usr/local/bin/nkf -W -e
として、入力をUTF-8に明示的に指定してやればいいと思う。
これでどうだ!:-)
900897=884:03/04/25 02:17 ID:cyTzNfiP
>>868
…もう泣きたい気分です。そのままです…
と思ったらこれ、うちで入れたnkfのヴァージョンが原因かも。
ダウンロード元のページ(琉球大?)で、まだβ版という新しいver.もあったのですが、
安定しているという192を入れたのです。
でも今ちょっとググってみたら、nkf2xx以前だと「-W」が使えないらしい…
ヴァージョンアップに挑戦してみます。
最新版は別の所にある202でいいのでしょうか?
901897:03/04/25 22:35 ID:cyTzNfiP
やっとできました!
レス下さった方々、特に868さん、本当にありがとうございました。
やはりnkfのヴァージョンが原因でした。
恐ろしくて触れなかったターミナルまで駆使して、大冒険だったなあ(^^;)
こういうのが作りたかったのです。↓

property dic : "http://dictionary.goo.ne.jp/search.php?MT="
property dicej : "&ej.x=22&ej.y=8&kind=&mode=0"
property dicje : "&je.x=49&je.y=15&kind=ej&mode=0"
property dicjj : "&jn.x=31&jn.y=7&kind=ej&mode=0"

on run
tell application "Finder"
activate
set theWord to text returned of (display dialog "単語入力" default answer "")
set theDic to button returned of (display dialog "辞書選択" buttons {"英和", "和英", "国語"})
end tell
tell application "Safari"
activate
if theDic is "英和" then
open location (dic & theWord & dicej)
else if theDic is "和英" then
open location (dic & my urlencode(theWord) & dicje)
else if theDic is "国語" then
open location (dic & my urlencode(theWord) & dicjj)
end if
end tell
end run
on urlencode(theWord)
return do shell script ("echo -n " & (theWord as Unicode text) & "|/usr/local/bin/nkf -W -e|perl -ne 'shift;s/([^0-9A-Za-z_ ])/\"%\".unpack(\"H2\",$1)/ge;s/\\s/+/g;print;'")
end urlencode
902名称未設定:03/04/25 23:44 ID:I40kUyrw
あのー。素人の素朴な?疑問なんですけど、
Jcode.pmじゃいかんかったんでしょか。
903名称未設定:03/04/26 00:34 ID:nwYawPNf
デフォルトでnkf入っていないしね。
904897:03/04/26 00:35 ID:51NqFv6j
>>902
ただ単に知らないだけです…。そっちのが簡単なんですか?
そもそも私がperlを使うことがあるなんて思いも寄らなかったくらいで、知識は皆無です(^^;)
ちゃんと使えるのができたし、これはこれで満足ですけどね。
後学のためにjcodeググってみよっと。
905868:03/04/26 20:14 ID:kCJtc9df
perl5.8からは標準になったんだっけ?>Jcode.pm
MacOSXのperlは5.6.0なんでJcode.pmがデフォルトでは入ってないよね。
俺インストールした記憶あるし。
#鯖に使ってるマシン見たら入ってなかった>Jcode.pm
そもそも、Jcode.pmが使えるんだったらこんな所でつまずいていないと思われ。
#言い方悪くてすまん>>897
nkfの方が海上さんの連載でも紹介されてたし、簡単かなぁと。定番ですし、書式は簡単だし。
思わぬ所(バージョン)で引っかかっちゃいましたけどね。
#海上さんの連載の質については言いたい事が沢山ある人もいるでしょうけど:-)

実はrubyのnkfモジュールを使う方法も考えたんですけど、うまくいかなかったので
#rubyのnkfモジュールってUTF-8使えないの?
コマンドの方のnkfを出したと言う経緯もあったりします^^;;;;;;;
何はともあれ、完成おめでとう!>897
あ、ついでに書いておくとJcode.pmをインストールしたら、
#!/usr/bin/perl
use Jcode;
while(<>){
$_ = Jcode->new($_)->h2z->utf8;#utf8をjis/euc/sjisにするとそれぞれの漢字コードになります。
print;
}
で、漢字コードの変換が出来ます。h2zは半角カナ→全角カナ変換ね。jisには半角カナ無いから、
付けておいた方が無難。
で、Jcode.pmはこちら>http://search.cpan.org/author/DANKOGAI/Jcode-0.83/Jcode.pm
サンプルもあるよ。
906902:03/04/26 20:35 ID:Wi1WOxek
いやあ、僕の場合、10.1.5でnkfの新しいバージョンがうまくmakeできなくて、
Jcode.pmはわりと簡単に導入できた記憶があったので言ってみたのでした。
新しいnkfも大丈夫なら導入してみようかな。
907897:03/04/27 01:23 ID:nGD2J8uB
コード変換、まだ何通りも方法はあるのですね。
教えていただいたのを解読するのでもう精いっぱいで、
他の方法なんて考えも及びませんでした…(^^;)
nkfは確かに簡単に使えるので、ver.202を入れる時にも、
インストール説明書類の日本語版を旧バージョンでサクッと変換して、
わざわざTextEditで開いて自己満足…(笑)
Terminalに対する不必要な恐怖感を克服できたので、
jcodeも近々入れて試してみようと思います。>902さん教えてくださってありがとう。
しばらくスレを占領してしまってすみませんでしたm(_ _)m >皆様
それから868さん、何から何まで丁寧に教えていただいて本当に感謝。
868さんに幸あれ!
908868:03/04/29 18:38 ID:TGcycE4B
幸、受け取りますたw>863=897

Larry Wall(perl,patchの作者)じゃ無いけれど、
「何をするにもやり方は一つだけじゃない」(TMTOWTDI; There's more than one way to do it.)
わけで、取り分けMacは他の環境に比べて選択肢が多いように感じます。AppleScriptが
あるだけで、他のアプリの機能を自分の物のように使えると言うのは強いよね。
思いつきをどんどん形にして行くだけでも、それは経験になり、財産になります。
私もそうして今がある訳だし、863=897さんもこの先そうして経験を積んで行く訳です。
そして、今度は863=897さんがその経験を元に、他の方に色々教えてあげてくれるように
なれば、私もここに色々書き込んだ甲斐があったと言うものです。
これを最後に名無しに戻りますが、多分呼ばれればまた出てくるでしょう:-)

私からはこのスレを立ててくれた>>1さんに感謝。いろんな出会いがこの1年ちょいの
間にあったなぁ、と感慨深いです。きっと次スレも立つでしょうが、結構スローペース
だから、1000埋まるまであと半年くらいかかったりして:-)
909名称未設定:03/05/02 11:47 ID:pLsnK88U
ぼそ.....

5GBのiPodしか持ってないし、曲を選ぶのたいへんだから
iTunesのライブラリからランダムに5GB分を選んで
プレイリストを作るスクリプトを作りたいんだけど、
どっから手を付けていいもんやら。
910名称未設定:03/05/02 11:52 ID:dpxmuXz2
iTunes をスクリプトエディタにドラッグ&ドロップするところから始めたらどうだろう?
911名称未設定:03/05/02 20:17 ID:FrdbF0uX
スクリプトで書くのがめんどくさいなら
スマートプレイリストを使うとすぐできる
912名称未設定:03/05/03 12:57 ID:1Efb2Mo1
今回の事は>>911がよさそうですね。

それはそれとして、>>909
まずプログラムの基本的な手法は頭に入ってるんだろうか?

-----------------------
ファイルのリストを入れる変数を用意する
ファイル容量の合計値を入れる変数を初期値0で作る
以下を繰り返す
 ランダムに一曲選ぶ
 ファイル容量を調べる
 ファイル容量の合計値に、今調べた値を足す。
 もしも、合計値が5Gを超えるなら
  繰り返しを抜ける
 5Gを越えないなら
  ファイルのリストに今の曲を追加
 もしもの判定終わり
繰り返しはここまで

ファイルのリストを元にプレイリストを作るか
iPodに転送?
------------------
とまあこんな風に骨格を考えて、
後は実際にできるかどうかiTunesのAppleScript用語辞書を見たり
iPodの仕様を調べたりしながら
作ってみると。

俺はかなーり行き当たりばったりなので、作ってるうちに全然違うものになったりするけど。

まーぼちぼち勉強してつかーさい。
913名称未設定:03/05/04 07:07 ID:1BNMQjPd
初心者質問ですみませんが・・
ドロップしたフォルダの中にいくつかのフォルダがあるんです。
それを、
先頭文字列に「a」という文字が入っているとき
あらかじめ用意した別のフォルダに移動したいんです。
aをa_folder
bをb_folder
cをc_folder・・・・
って感じで。
他にも問題があると思うのですが、構文確認で取り出した変数から

set x to charactor 1 of 変数

の「1」の部分で引っ掛かってしまします。
914名称未設定:03/05/04 07:37 ID:LLIC6iCy
>>913

とりあえず、starts withを使ったらいいんじゃないの?
915名称未設定:03/05/06 11:53 ID:KgYcMPPn
Mac Powerの付録でDockの位置を変更するターミナルがあったんですが、
default write com.apple.dock orientation (left,right,top,buttom)

default readでもデュアルディスプレイの位置(↑上記位置が出るだけ)までは出ません。
ってことはデュアルディスプレイのメインのどこそこ、もしくは、サブのどこそこ
と言うふうにはDock位置を指定できないということですか?

上下に使用していてメインディスプレイは上。メインのbuttomに
Dockを配置したいのですが。。。ふつうにbuttomとすると(環境設定:下)
サブ下の下になっちまいます。
916名称未設定:03/05/10 18:41 ID:ZSSbWRTG
>>915
>Dockの位置を変更するターミナル
それはすごい!

ってのはさておき、できますん。
917名称未設定:03/05/10 18:52 ID:0o6skj8y
保守
918名称未設定:03/05/10 19:13 ID:g7wCnE8R
バトム?
919名称未設定:03/05/10 19:16 ID:nSXJAtQf
>>916
どっちですか!
920名称未設定:03/05/10 23:54 ID:mjMNOUN2
>>915,919
ずっと前からそれやりたいって言ってる人だよね?

あなたの執念はみとめるけど、
デュアルディスプレイは二つのディスプレイで一個になってるんだから
ミドルとか、座標指定とかが無い限り無理。
あなたがやりたいのは画面のど真ん中にDockを浮かべたいという事。
それだと隠す場所もないし。

Drag Thing買いなさいよ。
921名称未設定:03/05/11 01:04 ID:Ss2+X7u0
なんかできない。と断定されてホッとしたような。ありがと。薄々感じてたけど。
にしても、前は確かターミナルスレ?(うる覚え)に書いてスルー→いつの間にか落ちる。
だったから、最近MacPowerにも同じの(915の例)のってて聞いてみよう
と思ったけど。覚えてる人いたんだ。うざかったね。ごめん。
922名称未設定:03/05/11 12:20 ID:kz2v0cip

AppleScriptを使って、ネットに接続し、マカエレ(Carbon)に
自動巡回させて、終ったら、接続を切るということをやりたいのですが、
同種のスクリプトを書かれている方はいますか?
どうやればいいでしょう。

923名称未設定:03/05/11 12:53 ID:ncP+7G9Z
>>922

ttp://www.apple.com/applescript/GUI/
これ使う。

でも巡回が終わったのを判定する方法がたぶんないから、
ある程度の時間の見積もりでやるしかないかな。

OS 9ならAS非対応ソフトのスクリプトの経験あるんだけど
OS Xでのこれは使った事ないんだよね。
924名称未設定:03/05/11 23:41 ID:zLN8DLf8
それの話なんだけど。
UIElementInspector
というものを使うと、ボタンとか、どう指定すればいいか分かるんだけど、
Toolbarって、AS上での表現は

Tool bar (bの前に半角スペース入る)

なんだよね、UIElementInspector上でToolbarって表現してくるんで、
すげえ悩んだ。
にしても、やたらtellしなきゃならんの、面倒なんだよな。
925名称未設定:03/05/12 21:44 ID:yVcnB3ID
そうなんだ。
AS Stuidioでも、AppleScriptで記述する時のオブジェクト名を知らないと困るんですよね。

>やたらtell
オブジェクト指向っぽくていいじゃん(w
って言ってて自分でもわけわからん。

そろそろ使ってみないとヤヴァイな。
926名称未設定:03/05/12 23:59 ID:eJlbF1Rb
AppleScriptって英語に模してあるぶん、打鍵数が多くなるのがうざいんだよね・・・。
927名称未設定:03/05/13 00:16 ID:NthdFoL8
>>926
昔の日本語版AppleScriptだって、
〜についての嵐だったが。
      終了
    終了
  終了
終了
928名称未設定:03/05/13 00:20 ID:aBsxNV87
>>927

>>926は他のもっと低級な(コンピュータよりの)言語と比べてるんだと思われ。

まあtell applicationをtell appって打つとか、お決まりのフレーズはIMに登録するくらいしか
方法はないかな?
929名称未設定:03/05/13 00:23 ID:9kvKmSku
噂ではフランス語版AppleScriptってのも昔はあったらしいね。
930名称未設定:03/05/13 02:02 ID:aBsxNV87
昔話はやめれ。

自分もたまにやっちゃうけど、この板は『新』Mac板なんだけど懐かし話が多くて

なんかメゲる。死ぬ前のジーさんかっての。

鬼が笑うような先の事の妄想もいらん。今の話をしよう。
931名称未設定:03/05/13 09:23 ID:VZG0kJsk

AppleScriptを使って、ネットに接続し、マカエレ(Carbon)に
自動巡回させて、終ったら、接続を切るということをやりたいのですが、
同種のスクリプトを書かれている方はいますか?
どうやればいいでしょう。

932名称未設定:03/05/13 11:45 ID:8vt/Aq45
>>931
氏ね
933名称未設定:03/05/13 12:01 ID:aBsxNV87
>>931
コピペうざい
本人がやってるなら、『アホか?』のひとことを進呈しよう。
934名称未設定:03/05/14 11:49 ID:9ppIHNSM
こんな簡単なこともわかんないのかよ?
こんなこともわかんないやつがスレ立てるな。
こんなこともできないスクリプトじゃなんの値打ちもなし。
あほらし。

-------------
AppleScriptを使って、ネットに接続し、マカエレ(Carbon)に
自動巡回させて、終ったら、接続を切るということをやりたいのですが、
同種のスクリプトを書かれている方はいますか?
どうやればいいでしょう。
935名称未設定:03/05/14 11:59 ID:D0sFgTld
>>934

923 名前:名称未設定 メェル:sage 投稿日:03/05/11 12:53 ID:ncP+7G9Z
>>922

ttp://www.apple.com/applescript/GUI/
これ使う。
936名称未設定:03/05/15 10:46 ID:X4M8TRd0
AppleScriptを使って、ネットに接続し、マカエレ(Carbon)に
自動巡回させて、終ったら、接続を切るということをやりたいのですが、
同種のスクリプトを書かれている方はいますか?
どうやればいいでしょう。
937名称未設定:03/05/15 12:24 ID:j56YCTmk
>>936
早く氏ねよ
938名称未設定:03/05/15 14:35 ID:l6XLpXOl
tell user "936"
launch application "マカエレ(Carbon)"
push button "巡回"
repeat while "巡回中" is true
end repeat
disconnect PPP "回線"
end tell
939名称未設定:03/05/15 16:19 ID:4Vo7jmmS
tell user "936"
activate
commit suicide
end tell
940名称未設定:03/05/15 23:55 ID:zWONKvVx
tell user "936" to quit

これで済むな。
941名称未設定:03/05/16 06:54 ID:I4+4ST0u
do shell script "kill 936"

でもいいかな。(w
942名称未設定:03/05/16 11:13 ID:5ocsZ5J3
shutdown -h now

だろ?
943名称未設定:03/05/16 12:23 ID:QBT+zYQe
>>938-942

なんだ、やっぱりマカーばかりだな。
944名称未設定:03/05/16 16:41 ID:G8PovgnG
>>942
do shell script "shutdown -h now" with administrator privileges
だろ?
945名称未設定:03/05/16 20:49 ID:5ocsZ5J3
べつにAppleScriptじゃないし。
漏れいつもターミナルで使ってるし。
946ご主人様:03/05/16 21:30 ID:Y3T/ott+
osascript -e 'say "goshujinsama toh oyobi!"'
947名称未設定:03/05/17 00:03 ID:2J/Yr5j5
>936
正直、自分で2chブラウザ書いた方が早い気がするが?
『こんな簡単なこともわかんないのかよ?』とか言うってことはそれなりの
技術があっての事だろうし。
と言う訳で↓に逝け。そして2度と戻ってくるな>936
ttp://developer.apple.com/ja/

>>945
同じく。起動項目にはTerminal入ってるよな。
948名称未設定:03/05/17 08:08 ID:LgQrU+DV
>>944-947

マカーってかわいいね。

949名称未設定:03/05/17 20:53 ID:fymmRTju
ワハハ
950名称未設定:03/05/18 10:33 ID:pqP1tey9
ところでこのスレも950なわけだが、引越しはどうするんだ?
個人的にはこのスレもう保存したけど...
951名称未設定:03/05/18 10:52 ID:cpgvRlRx
まだいいでしょ。アクシデントで急に伸びたけど。
次のスレタイとテンプレ考える?

個人的にはシェルスクリプトとかPerlとかの情報がもっと欲しいかも。
次スレではGUIスクリプティングの情報も出るといいですね。
952えろす:03/05/18 19:25 ID:ZuCpvMRN
んじゃPerl用テンプレ

入門・リファレンス
とほほのperl入門
http://tohoho.wakusei.ne.jp/wwwperl.htm
Perlメモ
http://www.din.or.jp/~ohzaki/perl.htm
Perlリファレンス
http://www2u.biglobe.ne.jp/~MAS/perl/ref/

モジュール
CPAN
http://www.cpan.org/
Perlの小技
http://member.nifty.ne.jp/hippo2000/perltips/index.htm

参考書
プログラミングPerl
http://www.oreilly.co.jp/BOOK/pperl3v1/
CGI&Perlポケットリファレンス
http://www.gihyo.co.jp/books/syoseki-contents.php/4-7741-0755-7
953名称未設定:03/05/21 15:18 ID:uDCq8MeM
MacJPerlみたいなPerl実行用のGUIフロントエンドみたいなの無いかな?
Terminal慣れないんで
954名称未設定:03/05/21 21:19 ID:lJiSqnIg
えー!?
Terminalでコマンド名打ち込むだけで実行できるじゃん!
955名称未設定:03/05/22 00:27 ID:TMFxnJZO
>>953
アップスクリプトのアプレットにして、ダブルクリックで起動みたいなのではダメですか。
ワタシは、そうしてます。って、簡単なものだけですが。
956山崎渉:03/05/22 05:05 ID:wmfA4iPb
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
957名称未設定:03/05/22 09:33 ID:X4/gvI94
MacJPerlはAppleEventが使えたりとか
Macならではの機能があったし、あれと同じもんを期待するのは
今のところ無理。
日本語の扱いの楽さとかもたぶんぜんぜん違うでしょ。
かわりに非Macの参考書の通りでいけるとか
でかいデータ、大量のデータの扱いは確実になったはず。
958名称未設定:03/05/23 03:23 ID:Dbkcxv9+
MacPerl、OS X版(5.8/5.6)出てなかったっけか................インストーラがClassicアプリだったんで
入れてなかったんだが。
ttp://sourceforge.net/project/showfiles.php?group_id=7940&release_id=96205
959名称未設定:03/05/23 16:42 ID:mLwTBCAI
MacPerl、入れてみたけどやっぱりClassic版だったよ。
Carbon版は、MacPerl特有の、MacのToolboxにアクセス
するモジュール群のCarbon版。

MacPerlは、あの、ちょちょっと書いて直してその場で
コマンドRで実行できるのが便利だった。
OS Xでもエディタで書きながらターミナルで一度
% perl test.pl
とかやれば、あとは↑キーだけで何度でも実行できるわけだけど。
でもその都度エディタからターミナルに移るのがかったるい。

あとは、ドロップレット。AppleScriptで代わりになるもの
を(たぶん)簡単に作れるけど、やっぱりこれもかったるい。
AppleScriptって、まだ動作がもっさりとしてるし。
ターミナルでワイルドカードを使うのも便利だけど、
ドロップレットにはドロップレットの便利さがあるんだよなぁ。
960名称未設定:03/05/23 23:31 ID:AazZW4T4
AppleScriptStudioのUserDefaultを使わないで、
複雑な構造(といっても、リストの中にレコードがいくつかある程度)の
データを読み書きしたいのですが、出来ますか?
小さなスクリプトを書いているのですが、
その程度でアプリケーションに仕立てたくないんでつ。重くなるし。
961名称未設定:03/05/23 23:37 ID:ppW1Htko
>>960

AppleScript Studioのアプリケーションじゃなくて、ただのAppleScriptのアップレットとしてって事?
そのほうが属性にいろんなデータが保存できますけど。
ロードとかストアとか使えば別ファイルに保存もできますよ。

テキストデータならテキストファイルに書いてもいいんだけど
聞いた話ではスクリプトではないファイルにリスト型を書いたりする方法もあるとかないとか?
でもバージョン依存らしい。
962名称未設定:03/05/24 00:40 ID:SUxMRI9j
>>961
レスありが父さん

> ロードとかストアとか使えば別ファイルに保存もできますよ。

以前それやったんだけど、動作が微妙に変で困ってました(自分の不備かもしれないけど
あとテキストならデバックがしやすいかなと思って。
でも、結局それしか無いのか。がんがりまつ。
963名称未設定:03/05/24 01:32 ID:4bBhkjRZ
テキストがいいんだったら普通に読み書きしたらいかんの?
扱う変数の中身がテキストや数字ならそれで済むでしょ?
1行をリストの1項目にして
その1項目の中でタブ区切りとかでレコード表現する事できるでしょ?
さらに入れ子が深くなったらおれにはわからん。

で、テキストをそういう用途で使うんだったら
Perlを経由した方が簡単で速いと思う。
まあOS Xだと連携させるのめんどいけど。

AppleScriptにそういう風にテキストを使う事を補助するための
特別な関数・命令は用意されてないんじゃないかな?
964961,962:03/05/26 04:03 ID:ObbzSNaS
-- test script
property myList : ""
tell application "Finder" to set storeFile to (home as string) & "_StoreFIle.scpt"
set myList to load script (storeFile as alias)
set myData of myList to {}
store script myList in (storeFile as alias) replacing yes
set myList to (load script (storeFile as alias))
get myData of myList -- {1,2,3,4,5} << 空になってない

-- file _StoreFIle.scpt
property myData : {1,2,3,4,5}

色々試したけど、store script 出来て無いみたい。エラーは出ないんだけど。
なんで駄目なんだろう?初歩的な質問でごめんなさい。
965名称未設定:03/05/26 10:01 ID:N2j6e3o0
>960-964
--write.scpt
property myList : {{name:"test1", number:1}, {name:"test2", number:2}, {name:"test3", number:3}, {name:"test4", number:4}}
tell application "Finder"
set wh to open for access file ((home as string) & "StoreFIle.dat") with write permission
try
write myList as list to wh
end try
close access wh
end tell

--read.scpt
tell application "Finder"
set rh to open for access file ((home as string) & "StoreFIle.dat") with write permission
try
set r to read rh as list
end try
close access rh
end tell
return r

さてさて。おいら的にはふつーに書いてた書き方なんだが、これじゃ駄目か?
966965:03/05/27 02:01 ID:54ciq3a8
あ........read.scptのwith write permission要らないな。コピペで作ったのがバレバレ.........
967961,962:03/05/27 22:54 ID:wRzfMu/a
>>965
レスありがとう。そのスクリプトでできました。

で、自分のスクリプトの場合、どうやっても、コンパイル済みスクリプトに保存する事はできませんでした。
試しに、アプリケーション形式に(スクリプト中の拡張子も.appに変更)して実行したら、できました。
なんでだろう?まぁいいんだけど…気になる。
968山崎渉:03/05/28 12:47 ID:4MUzXfEh
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
969名称未設定:03/05/28 20:16 ID:oKDAHv6K
         
970名称未設定:03/06/04 21:23 ID:Qxv5tiF+
質問です。というか教えていただきたいのですがm(_ _)m
html形式のログファイルの整理をしているのですが、
<div>hogehoge</div>
<div>
<h3 class="subject"> 共通点て</h3>
<dl>
を、
<div>
<h3 class="subject"> 共通点て</h3>
<dl>
<dt>hogehoge</dt>
のように、特定範囲(変数)の文字列を引用して並びかえることは出来るのでしょうか?
よろしくお願いします。
971名称未設定:03/06/05 02:52 ID:8vzwmOFS
find ~/Documents |
while read file
do
cat "$file"
done

findで見つけたファイルに対して、古い物順にwhileに渡したいのですが、どうすれば良いのでしょう?
972名称未設定:03/06/05 11:39 ID:c8bUzdUn
 
973名称未設定:03/06/05 15:27 ID:0NQvXz7f
新スレ立てたよ。

>>951
スレタイこれでいいよね・・・。

「命令を実行しなさい !」OS X でスクリプト 2
http://pc.2ch.net/test/read.cgi/mac/1052139833
974名称未設定:03/06/05 15:28 ID:dDfReRJH
>>973
おつかれ
975名称未設定:03/06/05 15:28 ID:dDfReRJH
>>973
もうちょっと、後でよかったんじゃない ?
976名称未設定:03/06/05 15:29 ID:V7G7ggcO
>>973
乙。
977名称未設定:03/06/05 15:34 ID:VQHldtan
>>973
あぼーんしてたのに・・・ウワァーン
978名称未設定:03/06/05 23:28 ID:3QfO5QL7
>>971
ls -lrtd `find ~/Documents | sed 's/ / /g'` | while (ry
でどう?
979名称未設定:03/06/06 00:49 ID:EqJ3//5i
>>978
をを、れすたんくつ
ls -lrtd "`find ~/Documents`" | awk '{print $9}'
こんな感じになりまつた。
980名称未設定
>>979
スペースを含むファイルはないんでつか?
awkで切り出すんならそもそも lsで -lは(ry