AppleScript アップルスクリプト 質問、発表 6at MAC
AppleScript アップルスクリプト 質問、発表 6 - 暇つぶし2ch572:名称未設定
15/05/09 09:40:06.13 il35J4cb0.net
>>526
ありがとうございます。
書き方が間違っていたということですね。

573:名称未設定
15/05/09 23:01:12.58 5b1J/LZS0.net
>>527
というより、半分バグみたいなもん

574:名称未設定
15/05/10 02:53:21.26 ucfHZQTk0.net
>>525
AppleScript でファイル参照を表現する記述には
・alias [HFS形式の文字列]
・file [HFS形式の文字列] ― (表記の互換性のために残されている)
・POSIX file [UNIX形式の文字列]
の三つのが用意されている。これはちょっと特別な記述と覚えておく必要がある。
ちょっと例題とは違うけど、
tell application "Finder"
exists POSIX file "/tmp"
--
set tmp1 to "/tmp"
exists tmp1 as POSIX file
--
exists POSIX file tmp1
end tell
と書いた場合、家の環境ではエラーは起きずに実行できるが、最後だけ false が帰ってくる(10.9)。
これはまあバグなんだろうけど、それは置いといて、この三つの記述は実は全部違う手順で実行されている。

575:名称未設定
15/05/10 02:53:46.85 ucfHZQTk0.net
>>529 の続き
最初の記述は冒頭に書いたようにファイル参照表現になっているので、POSIX file "/tmp" の部分が
コンパイル時にファイルを示すオブジェクトに変換されスクリプトに埋め込まれる。
10.4 ぐらいのスクリプトだと、こういう記述がコンパイル時に
file “Machintosh HD:private:tmp”
に書き換わっていたのを覚えている人もいると思う。まさにあの動作。
二番目の as POSIX file と言う表現�


576:ヘ強制的な型変換処理で、これは実行時に処理される。 as による型変換は基本的に tellブロックの中でもスクリプト側で優先して処理されるので、 Finderが受け取る引数はファイルを示すオブジェクトになっていて正しく処理できる。 三番目のものは、一見ファイル参照表現のように見えるけど、変数の tmp1 になにが入るかは 実行時で無ければ分らないので、コンパイル時には処理できない。そして実行時に get POSIX file "/tmp" が Finder に丸投げされて、でも Finder は POSIX file をうまく扱えず エラーになる…はずが、なぜか exists の場合は false が帰ってきてしまう。 ちなみに System Events で同じことをするとちゃんと(?)「エラー -1728」になった。もちろん、 tellブロックの外でこの手の手順を記述するならスクリプト側で処理されるので、問題にはならない。



577:名称未設定
15/05/10 11:56:58.29 ihNZ0FRq0.net
前にもここに書いたんだけど、Finderもfile classを定義してるからキーワードの解釈が
衝突してるんですよ。my付けてglobalな定義を優先すれば良い。
tell application "Finder"
set tmp1 to "/tmp"
set tmp to my POSIX file tmp1
end tell
tell application "Finder"
set tmp1 to "/tmp"
exists my POSIX file tmp1
end tell

578:名称未設定
15/06/27 20:35:43.04 oLuCxE430.net
display dialog "このスレって、生きてるんですよね?"

579:名称未設定
15/06/27 20:54:57.43 XVP2cUyr0.net
もちろんさ

580:名称未設定
15/06/27 20:58:32.57 2HcvqLl20.net
結果:
{button returned:"OK"}

581:名称未設定
15/06/27 23:59:13.55 IO5TRzBI0.net
error number -128

582:名称未設定
15/07/02 00:53:17.64 JqmVzF680.net
YosemiteからAppleScriptの代わりに
JavaScriptも使えるようになったのね。
今頃気が付いた。

583:名称未設定
15/07/02 02:03:26.78 5ci7EMIH0.net
それでScript Editorになったのか。納得

584:名称未設定
15/07/02 02:04:23.51 3sKDtNad0.net
Swiftも足せばいいのに

585:名称未設定
15/07/02 14:04:43.02 P9q2kFwz0.net
xcodeぇ…

586:名称未設定
15/07/03 20:28:58.67 BY+AkDuD0.net
いろんなサイトを見ながら見様見まねで
finder上で選択したファイルを選択したフォルダにコピーするスクリプトに
トライしてみたのですが
「if D_fileExist = "false" then」の部分がスルーされて「else display dialog ~」が実行されてしまいます。
ご指導いただけるとうれしいです。
よろしくお願いします。
tell application "Finder"
set A_filePath to selection as alias list
if A_filePath = {} then
display dialog "ファイルが選択されていません"
return
end if
end tell
getFileName(A_filePath)
on getFileName(theFile)
set tmp to AppleScript's text item delimiters
set AppleScript's text item delimiters to ":"
set fileName to last text item of (theFile as string)
set AppleScript's text item delimiters to tmp
return fileName
end getFileName

587:名称未設定
15/07/03 21:30:06.17 xfqT0ASe0.net
質問文とコードが合ってないじゃないの

588:名称未設定
15/07/03 21:43:28.53 zhZri2f80.net
文とスクリプトが一致してない(し、文のスクリプトが間違ってもいる)が、そのままでも意図したようには動いているけど
俺だったら
set A_filePath to selection
if (count of A_filePath) is 0 then
って書くかなあ

589:名称未設定
15/07/03 21:57:53.21 xcqVHBQg0.net
>>540続きです。
set C_fileName to getFileName(A_filePath)
set B_folderPath to (choose folder)
tell application "Finder"
get exists of file C_fileName of B_folderPath
set D_fileExist to result
if D_fileExist = "false" then
duplicate selection to B_folderPath without replacing
else
display dialog "すでに " & C_fileName & " は存在します。上書きしますか?" with icon caution
set E_buttonResult to button returned of result
if E_buttonResult = "OK" then
duplicate selection to B_folderPath with replacing
end if
end if
end tell>

590:名称未設定
15/07/03 22:05:26.31 zhZri2f80.net
なるほどw
exists of
で得られるのは Boolean値 であって、文字列(の"false"/"true")じゃないよ
if not D_fileExist then
でとか

591:名称未設定
15/07/03 22:45:13.35 xcqVHBQg0.net
>>544
ありがとうございます!
とりあえず動くようになりました。
Boolean値って何だ? と検索するぐらいの初心者で
いろんなところからコピペして繋げてみた感じです。
なので試行錯誤している途中で
これだとフォルダのコピーが出来ないことに気付きました。
> 文とスクリプトが一致してない
これってどういうことでしょうか?
あと「このサイトをみて勉強しろ」みたいなサイトがあったら教えてください。
今は>>1にあった鳶嶋工房をみながら少しずつ勉強しているところです。
よろしくお願いします。

592:名称未設定
15/07/03 23:25:35.52 zhZri2f80.net
>>545
あそこで切れて終わっているように見えたので、前半の文(の中でのスクリプト)と後半のスクリプトが一致していないってこと
>>544 の「なるほどw」は、なんだ続きがあったのかということで、「文とスクリプトが一致してない」は解決している

593:名称未設定
15/07/04 07:51:34.34 YgtqpRu90.net
>>536
>JavaScriptも使えるようになったのね。
Yosemite上のWebブラウザー(Safari)から、命令が
拡張されているアップル版”JavaScript”を実行するこ
とは、できないのですよね? たとえば、Safariから
アップル版”JavaScript”を実行して、それがApplications
内のDVD Playerを起動させて、DVDのチャプター2を
再生させることなど。
 5年ほど前からこの方法でSafariからAppleScriptに引数
を渡してDVD Playerを再生してきてますが、JavaScriptで
直接実行できたらよいと思います。
Launch Scripts from Webpage Links
URLリンク(www.macosxautomation.com)

594:名称未設定
15/07/04 11:09:22.94 h2hbqIaM0.net
>>547
純粋に興味から聞くけど、どうしてそんな面倒なことやってるの

595:541
15/07/04 11:48:03.94 YgtqpRu90.net
英語の教員をしておりまして、生徒に教える
英単語や受け身や仮定法などの文法事項を
DVD英語字幕から検索して、その場面をDVD
で再生しています。英語字幕とDVD再生に必
要になるタイムコードは、sqlLite形式で:
/Users/ユーザー名/Library/Safari/Databases/
に入れて、これをSafari==>Javascriptで検索し
検索結果をSafariにLaunch Scripts from Webpage
Linksで実行できる形式で表示して、それをクリック
して、AppleScriptを実行しDVD Playerで再生します。
 この方法は、余計なソフトをインストールせずに
Safari(+Javascript)+AppleScript+DVD Playerだけで
実行できる点が気に入っています。

596:名称未設定
15/07/04 13:30:27.29 lLFsJcsp0.net
そのままAppleScriptの部分をJavaScript(JXA) に直すといいのかな

597:名称未設定
15/07/04 14:32:18.72 cJAeUdIb0.net
>>546
そうでしたか。ありがとうございました。
改良してフォルダのコピーも出来るようになり、
目的は達成したけど、もっと勉強しないとです。
でも楽しい。

598:名称未設定
15/07/04 22:56:39.87 louF/aWK0.net
最新の環境(iTunes 12.2.0.145/OS X 10.10.4)でiTunesが手前にならないんだけど俺だけかな
tell application id "com.apple.iTunes" to activate

599:名称未設定
15/07/04 22:58:46.73 gXTZwE1/0.net
手前にくるなー。iTunes 12.2.0.145/OS X 10.10.4 だけど

600:名称未設定
15/07/04 23:07:35.80 louF/aWK0.net
追加:
メインウインドウを開いてて、かつアプリが隠れてない時しか手前にならない。
しかも起動してない時に実行すると、手前にならず、かつ隠れて起動する。

601:名称未設定
15/07/04 23:09:33.60 jRTw82Rh0.net
>>549
プログラミングを職業にされてるわけでもないのにすごいですね。
私はJavaScriptからsqliteが操作できることも
JavaScriptからAppleScriptを実行できることも知りませんでしたよ。
Appleの開発者


602:サイトを見ると "The JavaScript OSA component implements JavaScript for Automation. The component can be used from Script Editor, the global Script Menu, in the Run JavaScript Automator Action, applets/droplets, the osascript command-line tool, the NSUserScriptTask API, and everywhere else other OSA components, such as AppleScript, can be used." と書いてあるので、SafariのJavaScriptから直接実行するのは無理そうですね。



603:名称未設定
15/07/04 23:29:23.28 gXTZwE1/0.net
>>554
・ウィンドウを何も表示してない
・アプリケーションを隠しておく
・起動してない
全部手前にくるなー

604:名称未設定
15/07/04 23:34:30.30 louF/aWK0.net
>>556
じゃあ俺だけかな…
ありがとう

605:名称未設定
15/07/05 04:59:33.52 fJrrslaF0.net
怪しげな常駐アプリ入れてないかそれ

606:名称未設定
15/07/05 05:28:51.16 uBZo4BRt0.net
んにゃ
option起動して、空っぽの新規ライブラリ作ったら起きなかったから、ライブラリが何か悪さしてる模様。
前バージョンでは起きてなかったし、ライブラリ作り直すのもめんどいからしばらく様子見てみるよ。

607:名称未設定
15/07/06 18:11:24.38 dTkqL4+G0.net
set this_file to choose file without invisibles
tell application "Image Events"
launch
set this_image to open this_file
crop this_image to dimensions {1000, 500}
save this_image
close this_image
end tell
これを複数ファイルの連続処理が可能なドロップレットにしたいのですが
On Open dorp_Items, end openを前後に入れたくてもうまく行きません。。
ヘルプお願いします!

608:名称未設定
15/07/06 18:46:40.33 F44xxfZx0.net
>>560
スクリプトだけのことなら
on open dropItems
repeat with this_file in dropItems
tell application "Image Events"
...
end tell
end repeat
end open

Finderでドロップ可能なのにするのは、Info.plistを弄らないとならないのかな??
ドロップできないので(普通のアプリケーションと同じように)Info.plistにDocument typesを追加したらできたのだけど

609:554
15/07/06 19:05:12.47 dTkqL4+G0.net
>>561
ありがとうございます。なんとかできました。

610:名称未設定
15/07/06 19:17:26.04 F44xxfZx0.net
>>561
>Finderでドロップ可能なのにするのは、Info.plistを弄らないとならないのかな??
ああ、たぶん、Dropletsテンプレートから作れってことだな。そゆことで納得しとこうw

611:名称未設定
15/07/06 22:13:36.02 BXYRI4R00.net
Image Eventsで縦横を指定した数値に強制リサイズする方法ありませんか?

612:名称未設定
15/07/06 23:09:08.57 UWCV8pnF0.net
なさそうだからsipsコマンド-zオプションで

613:558
15/07/07 15:53:07.90 pMuP/1h30.net
>>565
ありがとう!
せめて短辺の数値を設定する方法ないですかね?
scale x to size xxx←これを短辺に。

614:名称未設定
15/07/07 16:34:46.48 eCnPxyr00.net
画像リサイズ osxでggrks
URLリンク(www5.wind.ne.jp)

615:558
15/07/07 18:07:22.26 pMuP/1h30.net
>>567
え?
そりゃフォトショでもなんでもできるがapplescriptで可能な記述はないかって話し。
同時にアイコン付けたり名前変えたりと他の作業も同時に行うスクリプトを書きたくて。

616:名称未設定
15/07/07 19:00:32.98 YzbvPtAK0.net
>>568
do shell script経由でimagemagickでできると思うが

617:名称未設定
15/07/07 22:16:01.83 amkJBVQ60.net
このスレの上の方に画像リサイズのスクリプトを書き込んだ人がいたよ。

618:名称未設定
15/07/11 13:33:24.18 uukKRe+y0.net
iTunesスレに行こうかとも思いましたがAppleScriptに限って発生するようなので、
まずはスクリプトの確認と再現性ということでこちらでお願いします。



619:AppleScriptを利用して動画データに情報を入力しているのですが、 編集できない(編集しても元に戻ってしまう)ファイルになってしまいます。 環境としてかなり限定的なのですが、今回利用したiTunes 12.2だけではなく、 以前のバージョンから引き続いて発生しています。 前提として、登録するファイルは「動画」である事と、 iTunes Mediaフォルダの場所やライブラリへ追加する際のコピーの実行の有無は問わないものの、 追加の結果、ファイルがローカルHDDではなくNAS上にあることが条件です。 (うちの場合、iTunes MediaフォルダはローカルHDDの場所を指定、追加するファイルはNAS上に設置、 環境設定にある追加時のコピーは行わない設定になっています。) 今回サンプルファイルとして以下のsample_iPod.m4vを利用しました。 https://support.apple.com/ja-jp/HT201549



620:名称未設定
15/07/11 13:34:16.15 uukKRe+y0.net
使用したAppleScriptは下記です。
tell application "iTunes"
add POSIX file "/Users/user/Desktop/sample_iPod.m4v"
set grouping of track "sample_iPod" to "TEST"
set year of track "sample_iPod" to "2015"
set category of track "sample_iPod" to "TEST"
set genre of track "sample_iPod" to "TEST"
set comment of track "sample_iPod" to "TEST"
set description of track "sample_iPod" to "TEST"
set long description of track "sample_iPod" to "TEST"
set name of track "sample_iPod" to "TEST"
end tell

621:名称未設定
15/07/11 13:36:24.56 uukKRe+y0.net
実行後、ホームビデオに追加されたsample_iPodを情報を見るから各項目を適当に編集して確定します。
その後一度このファイルを再生する、あるいは再度情報を見ると、各情報が編集前の状態(今回の場合はTEST)に戻ってしまいます。
ただ、必ずしもすべての項目で症状が発生するわけではなく、例えば説明(Description)に関しては発生しません。
編集できない情報に関しては何度やっても編集できませんが、再度AppleScriptを利用して情報を入力すれば編集できます。
AppleScriptを使用していない情報欄は編集できます。
なお、手動でiTunesに追加した場合は発生しません。
前提記載の通り、ファイルがローカルHDDにある場合も発生しません。
ミュージックファイルでも発生しないようです。
一応2種類のNAS(Drobo5NとAirMacExtremeにUSB接続したHDD)と2種類のMacで同様の症状を確認しました。
何かお気付きの点がありましたらよろしくお願いします。

622:名称未設定
15/07/11 14:21:39.53 uukKRe+y0.net
少し訂正です。
手動でiTunesに登録した場合でも、AppleScriptで情報入力を行うと編集できませんでした。
どうやら、NAS上にあるiTunesの動画ファイルの情報をAppleScriptを利用して書き換えると、
当該情報を手動で書き換えられないファイルになってしまう状態と言えそうです。

623:名称未設定
15/07/11 14:46:07.93 z2dqc7dE0.net
>>572
NASがないんで検証はできないが、文面見てパッと思いつく点
その書き方だと曖昧さがあるのでこうするのがよいと思う
...
set tarTrack to add POSIX file "hoge"
set name of track tarTrack to "hage"
...
問題の原因がこれかはわからんが
あと、症状が発生しないitunesのバージョンがわかれば何かヒントになるかも

624:名称未設定
15/07/11 16:18:59.81 uukKRe+y0.net
>>575
2行目でディスクリプタタイプが一致しません。number -10001 to item
と叱られたので、
set name of tarTrack to "hage"
にしてみました。が、結果は変わりません。修正不可ファイルです。
症状が発生しないバージョンは残念ながら不明です。
最近iTunesの見た目が大きく変わったのはiTunes11だったと思いますが、
iTunesのバグじゃないかなと期待しつつかかるバージョンに上げた記憶があるので、
そうすると少なくともiTunes10の頃からあった症状ということになります。
NASの導入がその頃なので、実際にはもっと以前のバージョンでも発生したのかもしれません。

625:名称未設定
15/07/11 16:56:15.76 z2dqc7dE0.net
>>576
ああごめん、二行目はこっちのミス
「何度やってもできない」は、一度発生した後


626:システム再起動しても不可?



627:名称未設定
15/07/11 19:02:49.32 uukKRe+y0.net
>>577
iTunesの再起動、本体の再起動共に効果なしです。
NASも再起動してみましたが、ダメですね。

628:名称未設定
15/07/14 02:28:27.39 A6Vp2DDe0.net
>>573
ストレージ違うだけで挙動が変わるのなら追加が終わるまでの時間が違うのかも。
2行目の直後にdelay 1挟んでみたらどうだろう。

629:名称未設定
15/07/14 08:26:20.02 k1XDpkSZ0.net
NASでそういうことするの厳しくね?
昔、NAS上のファイル名変更ですらうまくいかなかった記憶がある。
結局、aliasにして乗り切ったけれど、ものすごく時間がかかり、
do shell script とかいろいろ使ったような。
iTunesつかったことないけど、Finderでaliasにして
iTunesで操作とかできないのかね?
まったく理論的裏付けなく、経験的なことだけど。
純正アプリだしなんとかなりそう。

630:名称未設定
15/07/14 08:33:02.14 k1XDpkSZ0.net
>>574
ちょっと今どきのことはわかんないけど、afp://とかでNASと
つながってるんじゃない? cifs://とかだといいかも。
最近はすべてcifsとかだっけ?3年くらい前しかいじってないので
最近は知らない。cifsとafp混在でやっててもトラブる。

631:名称未設定
15/07/14 16:10:40.88 VhXIrKmA0.net
Cocoa-AppleScript Applet じゃなくても Cocoaフレームワーク 使えるよにできるのね
Safariの Favorities Bar 中の特定のフォルダ中のURLをBookmarks.plistより抽出するのを書いてみたのだが、速度が段違いすぎ&tryいらないから簡潔に見えるんだけど
まあ、AppleScriptは詳しくはわかっていない(whoseの使い方がいまいちわからん)のでAppleScriptの方が冗長なのかもしれないが

632:名称未設定
15/07/14 16:20:05.42 VhXIrKmA0.net
純粋(?)AppleScriptバージョン
URLリンク(gist.github.com)
Cocoa-AppleScriptバージョン
URLリンク(gist.github.com)
"Folder Item" が Favorities Bar 上でのアイテム名ね

633:名称未設定
15/07/14 17:14:05.00 VhXIrKmA0.net
>速度が段違い
ああ、System Eventsとのアプリケーション間通信でのオーバーヘッドがそのほとんどになりそうだわな
そりゃまあ遅くなるわな&どうしようもないわな&Cocoa-AppleScript万歳w

634:名称未設定
15/07/14 21:56:12.64 1ruXVyZ/0.net
>>579
それはちょっと考えてdelay挟んでみたもののやはり変わらずでした。
手動で追加だけしてそのあとに編集だけ行うAppleScriptを実行した場合も
同様におかしくなったので、原因はそこではなさそうです。

635:名称未設定
15/07/14 21:56:44.20 1ruXVyZ/0.net
>>581
マウント方法変えてみたけどダメですね。
というか、NASに置いても普通に手動で完結する分には全く問題ないから、
「NASだから」というわけでもなさそうです。
手動で追加、編集する分には問題なし。そのあとそのファイルをAppleScriptで編集すると、
その状態で固定みたいになって、以後同様にAppleScriptを使わないと編集できなくなる。
おま環なんですかね。そうであれば、それはそれで諦めるんですが。。。

636:名称未設定
15/07/15 04:34:10.51 hEGmCORz0.net
>>586
条件を満たしたとき「情報が戻る」というのは、itunesの操作と
スクリプト(ex. get name of tarTrack)どちらで確認している?
どちらかの手段のみで確認しても同じ?

637:名称未設定
15/07/16 00:32:52.64 qTdi8WaK0.net
xlsファイルをcsvで書き出すドロップレットを作りたく色々と調べた結果、
シェルスクリプトでxls2csvというアプリを使えば行けそうだったんですが
文字化けしてしまいます。
ターミナルからだと問題無いんですが、アップルスクリプトで実行すると
結果もファイルの書き出しも


638:化けてしまう状態です。 解決する方法はあるでしょうか? 因みにxlsの文字コードはUTF-8です。



639:名称未設定
15/07/16 02:27:49.86 +fhnsm1u0.net
>>588
AppleScriptでも do shell script してるんじゃないの?
だったら、シェルの環境設定がかなあ。ドロップレットにしたいだけだったら、Automator(での shell script アクション)でいいんじゃないの?ああ、同じように化けるかな?

640:名称未設定
15/07/16 03:24:14.69 PVq/K62H0.net
csvのコードはなんだろう。UTF16か昔風のShiftJIS?
こういうので変換するかな
iconv -f SHIFT_JIS -t UTF-8 out.csv > utf8.csv
iconv -f UTF-16 -t UTF-8 out.csv > utf8.csv

641:名称未設定
15/07/16 04:58:23.98 I+N1yIOO0.net
>>589
はい。AppleScriptでdo shell script "xls2csv input.xls"を実行すると
化けてしまいます。
シェルの環境設定はUTF-8です。
Automatorは試して無いのでやってみようと思います。
>>590
do shell scriptで書き出したcsvのコードは何故かASCIIになってました。
2バイト文字が全て?になってる状態です。
いま手元に環境がないので、明日iconvも試してみようと思います。
お二方ともありがとうございます。

642:名称未設定
15/07/16 08:31:37.42 o5zH5spX0.net
>>588
身も蓋もないこと書くと、do shell scriptではなく、
ApplescriptからTerminal.appを操作すれば解決しそう。
急ぎの仕事のやっつけスクリプトならね。

643:名称未設定
15/07/16 13:37:36.16 tdcKlDmT0.net
>>471と同じ話で、do shell script 内で LANG=ja_JP.UTF-8 を設定してやればいける気がするよ
do shell script "LANG=ja_JP.UTF-8 xls2csv input.xls"
もしダメなら
do shell script "export LANG=ja_JP.UTF-8; xls2csv input.xls"

644:名称未設定
15/07/16 16:02:09.78 iM/9yX710.net
>>593
いけました!
なるほど、LANG=ja_JP.UTF8と指定してやればいいんですね。
これでまたひとつ賢くなりました!
ありがとうございます。
>>592さんもありがとうございました。

645:名称未設定
15/07/25 09:01:30.20 robl8P910.net
Audio Hijack Proで深夜のラジオのストリーミングを
タイマーで録音したあと、自動でシステム終了させたいです。
デフォルトのQuit Audio Hijack Pro.scptの最後に、
tell application "System Events"以下を追加したのですが
終了してくれません
まちがっているところをおしえてください
おねがいします
on sessionsAreActive()
tell application "Audio Hijack Pro"
repeat with aSession in (every session)
if recording of aSession then
return true
end if
end repeat
end tell
return false
end sessionsAreActive
tell application "Audio Hijack Pro"
repeat while my sessionsAreActive()
delay 2
end repeat
delay 2 --Just to be really safe, wait one more time
quit
end tell
tell application "System Events"
shut down
end tell

646:名称未設定
15/07/26 04:28:28.86 26OH90hA0.net
>>595
System Eventsって、OSが10.9くらいになると、
初めて使う時にセキュリティ設定で許可しないとダメ、とか
面倒なことになってたような…
そのへんで引っかかってはいない?
tell application "System Events"
shut down
end tell
ここだけでちゃんとシステム終了するなら原因は他のところ、
って切り分けができるので、まだやってないなら試してみるといいかも
それが関係なければ、
tell application "System Events" の前にdelay 2(数字は秒数)とか入れてみると
もしかしたらうまくいくかも…
Audio Hijackの終了処理とshut downに入る処理がぶつかっちゃって
うまく動かない、なんてことも考えられるので
ちなみに自分も、iCalのタイマーでApplescriptを起動して
特定の曜日の特定の時間にシステムスリープをする、
ってことをやってるけど、三回に一回くらいは
スリープせずにそのままだったりする…
うまくいったりいかなかったりがあるのは
非常に謎です

647:名称未設定
15/07/26 05:18:05.29 emOATh9D0.net
Audio Hijack Proをquitしてるから


648:、残りのスクリプトを実行する人がいないんじゃないの



649:名称未設定
15/07/26 09:14:17.29 oPO6Ie/V0.net
>>596,591
tell application "System Events"
shut down
end tell
だけでよかったみたいですね
どうもありがとうございます

650:名称未設定
15/08/15 16:45:38.34 sV9ccIal0.net
>>595
tell application "System Events" to shut down
だけでは現在使用中の(開いてる)書類がある場合、
確認のダイアログが表示されてシステムが終了できないので
わたしのトコロでは~♪
do shell script "sudo shutdown -h now" password "ABC" with administrator privileges
※システムのスリープ中(スリープ解除にはパスワードを要求する設定)時には、
処理がキャンセルされてしまうようです。。?詳しく調べていませんが~
参考になれば~

651:名称未設定
15/09/11 19:43:23.46 g5Ecp+1z0.net
>>226
亀レスだけどありがとう
delay挟まないと上手に機能しないんだね。そこで詰まってたんだ㌧

652:名称未設定
15/09/12 20:05:41.29 m6VMDvfd0.net
tell application "Terminal" to do script "echo '123,あいう' | grep ,.い"
do shell script "echo '123,あいう' | grep ,.い"
--同じシェルスクリプトなのに、後者はエラーになる。なんでだろう・・・?

653:名称未設定
15/09/12 20:42:11.53 z0PX6hR20.net
>>601
・grep はパターンにマッチしたのが存在したか否かを終了ステータスでも表す
・do shell script は 0以外 の終了ステータスだとスクリプトそのものが失敗したとみなす
・do shell script と tell application "Terminal" では環境変数などが違うのだろうが、grep での , と い(日本語) が混じるパターンが一致しない。なんかあったけ?
なので、grepでパターンに一致するのがないので終了ステータスが 1 となり、do shell script はスクリプトが失敗したよと例外発生
パターンに一致しなくても例外発生させないようには、
do shell script "echo '123,あいう' | grep ',.い' || exit 0"
do shell script "echo '123,あいう' | grep ',.い';exit 0"
かな
, と い(日本語) が混じるパターンでの問題はよくわからんが
do shell script "echo '123,あいう' | grep ',.[い]';exit 0"
だといちおう思ったように動いているような

654:名称未設定
15/09/12 21:07:53.46 z0PX6hR20.net
>>602,595
>, と い(日本語) が混じるパターンでの問題はよくわからんが
>do shell script "echo '123,あいう' | grep ',.[い]';exit 0"
>だといちおう思ったように動いているような
いや、動いていない。[い]が絶賛無視されとる
環境変数といえば上のにあると思い見直し&調べ&テストすると、grepのパタンーマッチングではLC_CTYPEのよやね
do shell script "export LC_CTYPE=UTF-8;echo '123,あいう' | grep ',.い';exit 0"
でいいんじゃないのかな

655:名称未設定
15/09/12 21:47:12.87 m6VMDvfd0.net
>>603
なるほど環境変数が原因だったんですね
詳しく説明してくださってありがとうございます!

656:名称未設定
15/10/02 12:13:09.84 NO+o9yLb0.net
URLリンク(www.apple.com)
AppleScript Objective-C
dates、structs、recordsを使うためのAppleScriptObj-Cを新しくサポートします。
今更Objective-Cかいな。

657:名称未設定
15/10/02 12:58:15.03 UHfcxpmo0.net
OSのフレームワークが Objective-C だからな
AppleScript -> なんだかしらんがなにか(Swift?) -> Objective-C
よりも、
AppleScript -> Objective-C
だろうに
てか、「今更Objective-C」が明後日向いてね?
Objective-Cをサポートしていたが、新たに(ちゃんと) dates、structs、recordsをサポートします ってことじゃね?

658:名称未設定
15/10/02 13:06:10.03 UHfcxpmo0.net
URLリンク(developer.apple.com)
なんだそのまんまやん。struct/records は限定されていたのか。アレ以外使ったこと無いから知らんかったw

659:名称未設定
15/10/03 10:56:11.97 YP/PCEMt0.net
OS X 10.10 Release NotesのScripting Additions
の解説にsayを使用した例:
app = Application.curr


660:entApplication() app.includeStandardAdditions = true app.say('Hello world') app.displayDialog('Please enter your email address', { withTitle: 'Email', defaultAnswer: 'your_email@site.com' }) があります。emailの入力部分を音声認識Dictationを 使用するjavascriptも可能なのでしょうか? 実際に作成 したいスクリプトは、英語授業で、英語の質問をsayで 聞かせて、生徒にその解答を英語で発音させて、正しく 認識できれば正解、とする英会話練習ソフトウェアです。



661:名称未設定
15/10/03 12:12:42.47 6N6av+ju0.net
>>608
どこまで生徒にやらせないによるだろうな。キーボードによる不正(?)とか
Cocoaにアクセスできればより先が開けるだろうね

662:名称未設定
15/10/03 22:32:34.51 dkBh6mTx0.net
>>608
JavaScript OSA から使える音声認識API はあるかってことだね。
まずはAppleScriptでSpeechRecognitionServerっていうのを通してOS Xの音声認識機能を使える。あらかじめ登録した単語や文章しか認識できない。
認識するなあ、ってところまでしか試してないので、想定してるようなアプリを作るような使い方ができるかどうかまではわからない。あとJavaScript OSA から使えるかどうかは調べてないのでわからない。
次にJavaScriptからはHTML 5のWeb Speech APIっていうのを使える。こちらは登録してない文章でもちゃんと認識する。"My name is Mike Smith." と発話したら「my name is mike スネーク」と認識したw
こちらもJavaScript OSA から使えるかどうかは調べてないのでわからないけど、たぶん使えない。
でもテキスト読み上げもできるので、こちらを使ってWebアプリケーションとして実装しちゃうのが楽かも。あとこのAPIに対応しているブラウザのバージョンが限られているので、学校とかで使うんならそこは要確認かも。

663:名称未設定
15/10/03 22:48:47.94 dkBh6mTx0.net
ところで目的は発問と解答のサイクルを対話型で行うことだろうか、それとも音声認識できるような正確な発音を対話形式で生徒に練習させることだろうか。
音声認識ってけっこう正確な発音をしないと認識しないと思うので、前者目的の場合、解答は正解でも発音のせいで正解と認識してくれないとか、あるいは間違った解答なのに音声認識させようとして一生懸命何回も発声するようなシチュエーションがありそうに思うが。

664:名称未設定
15/10/03 23:40:16.83 aEqyyNFD0.net
SpeechRecognitionでの認識/目的はコマンドとしてみたい。なので事前に登録した単語=コマンドのよう
音声入力は DictationIM というインプットメソッドによる。音声認識の根幹は同じかもしれないが
CocoaでもDictation制御は公開されていないので制御は難しい。ユーザによるオン/オフをシミュレートしてかな
また、AppleScript/Javascriptのダイアログのテキストフィールドはなぜか DictationIM をサポートしてないよう
JavascriptでもどうやらCocoaブリッジはサポートしているので頑張ればできないこともないってとこかな

665:602
15/10/04 08:46:57.00 YSK4WGoB0.net
詳しい解説をありがとうございます。>>609,604,605,606
>>610
>次にJavaScriptからはHTML 5のWeb Speech APIっていうのを使える。
これを試してみます。Appleのsayは、3、4年間使用してき
ました。事前に使用する英文のアメリカ英語、イギリス英語
オーストラリア英語の音声ファイルを作成して、生徒に聞か
せて解答させる練習をさせてきました。sayのおかげで、リ
スニングの機会が劇的に増えましたが、これだけだと授業中
まったく英語を発音しません。
>解答は正解でも発音のせいで正解と認識してくれないとか、
解答は減点なしで2、3回できるようにしたり、音声ではなく
文字での解答も認める(ただし得点は1/3)などと工夫すれ
ば、どうにかなると思います。
>あるいは間違った解答なのに音声認識させようとして一生
英文を画面に表示して、それを正しく発音して、認識させれば
正解という設問も作ります。

666:名称未設定
15/10/19 12:01:32.52 UpKLRgHK0.net
10.11のスクリプトエディタ、ファイルメニューの最近使った項目を開くで、白紙アイコン+名前が空欄になってるのがある
その項目を選んだら前に開いた用語説明のタイトルだけ出た

667:名称未設定
15/10/30 18:18:30.65 VxrJMSCk0.net
スクリプトエディタで下記を実行してもデスクトップが切り替わりません。
手動で「コントロール + 1」 をおすとデスクトップは切り替わります。
なにか重要な事を見落としていると思うのですがよくわかりません。
tell application "System Events"
keystroke "1" using {control down}
key up {control}
end tell

668:名称未設定
15/10/30 18:31:57.79 oQD0Exuq0.net
俺はこれで出来てる

tell application "System Events"
key code 18 using control down
end tell

669:名称未設定
15/10/30 18:32:50.47 QhZ+2JiC0.net
>>271を書いた気がする
動いたよ

670:名称未設定
15/10/30 18:33:44.01 QhZ+2JiC0.net
>>226だったはw

671:名称未設定
15/10/30 20:56:24.45 VxrJMSCk0.net
>>616 ありがとう。
理屈はよくわからないけど、レスのコードそのまんまでできました。

672:名称未設定
15/11/04 02:10:30.60 pGq+pGFR0.net
複数のデスクトップにグーグルクロームの window があります。
デスクトップとは、マックブックドヤで四本指上スワイプしたときに表示されるやつです。
デスクトップ1のクロームを識別して、アクティブにするにはどうすればいいのでしょうか?
ここに検索結果を表示するためです。

673:名称未設定
15/11/09 23:53:26.28 u+bgZBDI0.net
最前面のアプリにキーストロークを送りたいのですが、なぜかうまく行きません。
tell application process と直接アプリ名をつかう場合(下記のクロームのような形式)の区別もよくわかりません
tell application "Google Chrome"使い分けがおかしいのでしょうか?
-- ↓がうまくいかない。
-- 最前面のアプリにキーストロークを送る
set topProcess to item 1 of (every process whose background only is false and frontmost is true)
tell application process topProcess
keystroke "c" using {command down}
end tell

674:名称未設定
15/11/10 00:49:23.10 8POt4B1s0.net
>>621
スクリプト実行してる時点でスクリプトエディタか
そのスクリプトのアプリケーションが最前面に来るから
キーストローク使うにはactivateで目的のアプリケーションを最前面に持ってこないと。
UI elements(ボタンやメニューなど)にアクセスしないならprocessは不要。
tell application "Google Chrome" to activate
tell application "System Events"
keystroke "c" using {command down}
end tell
こっちなら背面にあってもコピれる。
tell application "Google Chrome"
copy selection of tab 1 of window 1
end tell

675:名称未設定
15/11/10 03:12:25.57 FJLTXxkF0.net
>>622 有益なレスありがとうございます。
(*
tell application "Google Chrome" to activate
tell application "System Events"
keystroke "c" using {command down}
end tell
*)
↑これを試すとうまくいき、クロームの選択範囲がコピーできました。
でも、スクリプトエディタの用語辞書を読むと、 System Events にキーストロークが送られて、クロームの選択範囲をコピーでいないような気がするのですが違うのでしょうか。
用語辞書
keystroke v : cause the target process to behave as if keystrokes were entered

676:名称未設定
15/11/10 04:19:50.06 /h7Zu6C90.net
物理的にVキーを押すのが
System Events にVを送ると言う事だろ

677:名称未設定
15/11/10 07:57:36.97 8POt4B1s0.net
あと、Applescript対応アプリケーションで同じ機能があるなら
そっちを使う事をオススメする。
System Events経由だと実行中に何か操作しちゃうと思いも寄らぬ


678:挙動をするので。 コマンド+xとか入ってて、そのキーストローク実行前に 他のアプリケーションに切り替わっちゃったりしたら大変でしょ。



679:名称未設定
15/11/10 11:53:02.16 LHRISVKD0.net
>>623
基本的にユーザが手でキーを押すのとまったく同じ挙動
何が反応するかは状況次第

680:名称未設定
15/11/14 22:05:07.19 2cEuQzhU0.net
>>619
今更だけど
keystroke "1" はテンキーの"1"を指すんじゃなかったかな
あと key up control は key down control の後で使うもんであって、
keystroke 文字 (key code コード) using control down は一行で完結してるので念

681:名称未設定
15/11/14 22:08:22.89 0scHotXW0.net
仏の鉄

682:名称未設定
15/11/14 22:11:41.36 3tNdYBQ/0.net
chill

683:名称未設定
15/11/16 21:22:55.55 SAOPgBo80.net
OS9くらいからAppleScript触ってるけど素人です。
JavaScriptはさっぱりなんですが、乗り換えた方がいいんでしょうか?

684:名称未設定
15/11/16 21:29:21.10 t0VrsL6R0.net
それだけ長年触ってて理解できないようじゃJSなんてもっと無理だろ……

685:名称未設定
15/11/16 21:45:29.24 EmiWRZhr0.net
他に馴染んでる言語があるとか文字列を操作することが多いとかなら
JavaScriptの方がずっと楽だと思うよ

686:名称未設定
15/11/16 21:54:09.48 EmiWRZhr0.net
ああでもアップルのことだからいつまで続けるかわかんないよねw

687:名称未設定
15/11/17 06:26:10.94 1ouHt1MU0.net
JavaScriptはオブジェクト指向の考え方が
ある程度わからないと理解しにくい部分はありそう
AppleScriptから完全に乗り換えるんじゃなくて、
「AppleScriptだとdo shell scriptしないとできないけれど、
JavaScriptを使うとその場で解決できる処理」
が出てきた時にJavaScriptを使えばいい気がする
正規表現での文字列の検索置換とか、そういうのは
JavaScript内で出来るはずなんで、
そのへんから始めてみては?

688:名称未設定
15/11/17 09:09:23.09 Q6GYLDn20.net
色々組み合わせて考えるならJSよりもshell+ASの方が幅広く使えていいと思う。

689:名称未設定
15/11/17 13:21:15.50 UQB4hOGg0.net
JXAはあまりつかわれてないのかな

690:名称未設定
15/11/17 22:41:34.65 GvDIX6qt0.net
正規表現とハッシュ以外のメリットがあまりないんだよなぁ。
ダイアログ出すだけでもメンドクサイ。

691:名称未設定
15/11/17 22:48:48.92 b3qNeLRG0.net
AppleScriptでプログラミングする人は
html+JavaScriptでもプログラミングを
しないの? 私の場合は、ASは3%以下
JavaScriptが40%、Python40%、残りは
その他のプログラムという感じ。
 JavaScriptでfunctionを書いておけば
JXAでもhtmlでも使えるので、便利だと
思うが。

692:名称未設定
15/11/17 23:36:57.30 443NzYjK0.net
html+JavaScriptでもプログラミングをするのがあたりまえのように聞くのだか。アホっぽいなw

693:名称未設定
15/11/20 21:02:06.71 0VjuA+NT0.net
delay をどこにどれだけ入れればいいかなにか目安はないのでしょうか?
順番に処理されるから、delay いらない気がするのですが、下記のような
単純な script でも delay をいれないとうまく動きませんでした。
delay がないと myURL に設定したウェブページじゃなくて、へんなリダイレクトページが表示されました。
-- クロームでウェブページを表示
tell application

694:名称未設定
15/11/20 21:03:43.90 0VjuA+NT0.net
delay をどこにどれだけ入れればいいかなにか目安はないのでしょうか?
順番に処理されるから、delay いらない気がするのですが、下記のような
単純な script でも delay をいれないとうまく動きませんでした。
delay がないと myURL に設定したウェブページじゃなくて、へんなリダイレクトページが表示されました。
-- クロームでウェブページを表示
tell application "Google Chrome"
tell window kuroWinIndex to activate
-- delay 0.5
set myTab to make new tab at end of tabs of window kuroWinIndex
set kensakuGoku to _searchWord as text
-- delay 0.5
set myURL to "URLリンク(www.google.co.jp) & kensakuGoku
log "myURL : " & myURL
delay 0.4
set URL of myTab to myURL
end tell

695:名称未設定
15/11/20 21:17:32.71 IkinpZgs0.net
>>641
その最後のdelayがなくてもkensakuGoku/searchWordでのGoogle検索結果になるけど
へんなリダイレクトページってURLなんやねん?なんかアンチウイルスソフトでも入れているとか?

696:名称未設定
15/11/20 21:21:50.09 IkinpZgs0.net
もしくはなんらかのプラグインかなあ
プラグインが原因だとしたらdelayはそこじゃなくmake new tabの直後に入れても効くだろう
make new tabをしないでやってみてどうとか見るとよりプラグインが原因かなあがはっきりするかな

697:名称未設定
15/11/20 21:32:23.10 0VjuA+NT0.net
delay いれないと下記の URL に飛ばされるけど、拡張機能の悪影響みたいですね。
chrome-extension://pkolifcipfnlmkonikcnilfhgdbbhhko/redirect.html

698:名称未設定
15/11/20 22:05:27.27 IkinpZgs0.net
なる。そみたいだね
そのキモい文字列はなんやねんってググってみたら、機能拡張に付けられたユニークなIDかな。Tab Nullpo+ ならば

699:名称未設定
15/11/22 02:57:49.95 Crb3hzhD0.net
おらのアップルスクリプトにショートカットを割り当てるのが面倒くさすぎる件
1. スクリプトエディタでスクリプト作成
myscript.scpt
2. オートメターのサービス作成
アップルスクリプトを実行を選択し、1. の内容をコピペ
3. 設定 → キーボード。2. で作成したサービスにショートカットキーを割り当て。
修飾キー3つぐらいつけた複雑なやつを割り当て。
4. karabina で、右コマンドに 3. で作成したショートカット割り当て
----- -----
上記手順で作成したアップルスクリプトにショートカットを割り当てているのですが、もうちょっと効率的にできないのでしょうか?
上記手順だと、スクリプトエディタでスクリプトを修正したら、またオートメター立ち上げて、コピペが必要となり効率悪いことこの上ない。

700:名称未設定
15/11/22 03:22:36.50 CSZfjbIO0.net
>>646
Sparkとかのランチャー系アプリ使えば2以降はキー設定のみで済む
というか、そもそもKarabinerにそういう機能あるだろ
(おれは使ってないが。従前からSpark使ってるので移行がめんどいから……)
Karabinerで多機能ランチャーを実現する - Qiita
URLリンク(qiita.com)
最近できたKarabinerスレは有益な書き込みが多いのでオススメ
【キーリマップ】Karabiner Part1【カスタマイズ】 [転載禁止]©2ch.net
スレリンク(mac板)

701:名称未設定
15/11/22 03:23:43.00 S/HFRQF00.net
BTT

702:名称未設定
15/11/22 04:22:29.35 CSZfjbIO0.net
ああ、BTTももちろんありだね
ランチャー系でメジャーどころといえばほかにもLaunchBar、Alfredなど
参考までに自分はKarabiner、BTT、Spark、LaunchBarを併用しているよ
Sparkはもうやめたいんだけど移行がめんどい(大事なことなので(ry

703:名称未設定
15/11/22 11:19:29.93 wjYxrbbL0.net
>上記手順で作成したアップルスクリプトにショートカットを割り当てているのですが、もうちょっと効率的にできないのでしょうか?
↑を自動化しちゃえばいいんじゃねえ、なんつって
FastScripts
Instant access to your scripts, by keyboard shortcut or menubar.
Free for 10 keyboard shortcuts. $9.95 for unlimited.
10.6以降対応、10.10の話はリリースノートに載ってる
10.11はわからん

704:名称未設定
15/11/22 19:11:06.31 nrMXMOab0.net
>>647
レスありがとう。
karabiner からAppleScript実行できたのか。
知らなかった。
これができれば、>>646 の手続きを大分省略できる。

705:名称未設定
2015/11/24


706:(火) 22:10:39.87 ID:lOO4yht00.net



707:名称未設定
15/11/24 22:55:00.77 vOhllC2P0.net
>>652
>duplicate v : Duplicate one or more object(s)
>duplicate specifier : the object(s) to duplicate
>[to location specifier] : the new location for the object(s)
>移動先フォルダを指定するのか
これは書いてあるじゃん
まあ指定しなかったらどうなるかは書いてないけど
常識の範疇というかちょっと試せばわかること
>何を指定するか
この場合もそうだが、たいてい必要な specifier は alias や file だわな
path 自体はただのテキストにすぎないので、コマンドは場所として認識しない
君の書いてるPOSIX pathやなんかも最終的には変換して渡すわけだね
>set tarFolderPath to "/hoge/hage" --これはただのテキスト
>set tarFolder to POSIX file tarFolderPath --これでファイルを参照できる
>get POSIX path of tarFolder --これで tarFolderPath と同じものが返る
逆に言えば、コマンドに渡すまではどの形で管理しようと自由
テキストであることを生かしてホイホイ変形できる
自分なんかは POSIX path がわかりやすいし何かと便利なのでそれで統一してる
慣れるまでは全部下記のようにして渡すと謎の行き詰まりも減るかと
(面倒なことに、file や folder と alias の違いが問題になることがある)
>set tarFolder to tarFolder as alias --つまり (POSIX file "/hoge/hage") as alias

708:名称未設定
15/11/24 23:02:46.20 vOhllC2P0.net
よく見たら質問の答えになってないな。すまん
>どこを見たら
確かに用語辞書だけ見てもちんぷんかんぷんだと思う
暗黙の前提がけっこうあるからね
その辺は>>1にあるサイトを眺めてつかんでいくしかないよ

709:名称未設定
15/11/25 01:16:34.40 7NRDBOtT0.net
>>653 役に立つレスありがとうございます
下記のコードで srcFile の指定を tell ブロックの中でやるとエラーになるのはなぜでしょうか?
今日一日の数時間の作業の成果。作業効率化のはずが非効率化してる。
デスクトップにファイルコピーするだけで数時間かかった。
-- このファイルをデスクトップにコピー
property bkItemFullpathText : "/Users/Tomo/Desktop/kopitesuto.scpt"
set srcFile to (POSIX file bkItemFullpathText)
set destDir to (path to desktop folder)
tell application "Finder"
log "----- 3 finder で 処理開始-----"
-- これがだめ — 上書きしない設定に変更できずこまった
-- duplicate srcFile to destDir with replacing false
-- 下記2つは動く
-- duplicate srcFile to destDir without replacing
duplicate srcFile to destDir with replacing
end tell

710:名称未設定
15/11/25 02:34:16.75 TCaMN6bP0.net
shellのほうが楽そうだな

711:名称未設定
15/11/25 11:14:05.31 gljbLSkV0.net
>>655
set srcFile to bkItemFullpathText as POSIX fileにすればtell~内で動く。
それより、AでできるのにBの記述にできなくて何が問題?
A : duplicate srcFile to destDir without replacing
B : duplicate srcFile to destDir with replacing false

712:名称未設定
15/11/25 12:08:05.39 DGBNKIrw0.net
>>655>>657
ちゃんと用語辞書読めばそんな書き方はないとわかる
> [replacing boolean] : Specifies whether or not to replace items (ry
B はよけいな with がいかん
> duplicate srcFile to destDir replacing false
こう書けば普通に


713:動く(コンパイル時に without の記法に直されるが) どうでもいいが、without の記法が気に入らないならこうすればコンパイル通る > set isFalse to false > duplicate srcFile to destDir replacing isFalse



714:名称未設定
15/11/26 22:25:10.93 EikmtUER0.net
>>657
レスありがとうございます。
理由がよくわからないのですが、as を使わないと finder のfile オブジェクトととして解釈されて動かないということでしょうか?
AppleScriptの最大の問題点はパスの指定。エイリアス、posix 、ファインダーのファイル、Mac 形式とかあって意味不明すぎる。
AppleScript は一つの単語に複数の意味があって混乱する。
一つの単語に複数の意味、使い方があるような言語を使ってると馬鹿になるよ。

715:名称未設定
15/11/27 00:07:57.81 BPNuZ3Dr0.net
な、相手にしないほうが良かっただろ

716:名称未設定
15/11/27 01:37:40.10 jmwVs+pX0.net
お見通しワロタ

717:名称未設定
15/11/27 17:20:00.86 5UEcuuEY0.net
わろた
>>659=>>652とは限らないがマジレスすると
パスの仕様は意味不明でもなんでもない
ASの問題点は存在するが、お前はそれを指摘できるレベルに達してないよw
「複数の意味」を問題にするなら、せめてtellブロックでの用語衝突などを挙げてくれ

718:名称未設定
15/11/27 21:22:43.35 /EMo4Pm00.net
理解してない子ほど、自分の無能を棚に上げて文句言うやつか

719:名称未設定
15/12/08 02:50:30.52 VLHPwPJ50.net
用語辞書のスイーツ(笑) ってなんなのでしょうか。

クラスの説明が複数スイーツに分かれてたりして分かりづらい。

720:名称未設定
15/12/08 11:09:05.09 lB4YAlKM0.net
都会の隠れ家的お店で、頑張った等身大の自分へ与えるご褒美です。

721:名称未設定
15/12/09 18:01:19.26 yPmT8tDJ0.net
基本的なとこでつまりまくるので、Kindleで hanaan著"Learn AppleScript "を買った。

4600円したが内容は素晴らしい。
余計な前置きが多いのと、後で説明する、みたいなスタイルがうざいのがたまにキズ。

722:名称未設定
15/12/12 13:30:37.00 kUyJIXaw0.net
>>664
標準コマンドか否かみたいな感じ
基本的に見たいものは検索で探すから無視無視

723:名称未設定
16/01/01 09:06:18.03 BJsCGmtz0.net
display dialog "Happy New Year!"

724:名称未設定
16/01/04 00:18:42.48 Fh/KFYvI0.net
なーんか最近スクリプトエディタがよく落ちる
ちょっと前にJavaScriptで間違った文を実行して落ちて以来、落ち癖がついちゃったような
今はAppleScriptのコンパイル済み.scptを開いた時に多いけど、エディタ単独で開いても時々
OS X 10.11.2 (15C50)
スクリプトエディタ 2.8.1 (183.1)

725:名称未設定
16/01/04 03:03:47.04 85GhQRWi0.net
リポートとコンソール確認すれば

726:名称未設定
16/01/05 01:26:25.47 p4h3jkgn0.net
xcode 使ったら、ブレークポイントでとめて、タップで変数の中身確認とかできないの?

スクリプトエディタだとブレークポイント作れないよね?

727:名称未設定
16/01/05 08:47:52.77 w5XIhSln0.net
使った事無いけどLateNightのScript Debuggerとか?

728:名称未設定
16/01/20 23:51:55.18 64jps1E70.net
落ちてる?

729:名称未設定
16/01/21 00:05:03.47 DbKP7fYg0.net
下記は重複しない保存先パスを作成する script の一部です。
日付_連番_ファイル名  このような形式のファイル名を作成しています。
exists コマンドの挙動がおかしく、常に


730: false が返ってます。 set i to 2 repeat tell application



731:名称未設定
16/01/21 00:32:22.07 4rMo+FcO0.net
構文エラー
expression、property または key form など があるべきところですが end of script が見つかりました。

732:名称未設定
16/01/21 01:45:11.58 DbKP7fYg0.net
set i to 2
repeat
tell application "Finder" to set isItemExists to exists (my POSIX file fullpathText)
if {isItemExists = false} then
log "存在しない"
exit repeat
else -- 存在するときの処理
set k to (i as text)
-- date_k_baseName -- /Users/Yuu/Desktop/2016_01_21_test.txt
set fullpathText to destDir & baseDateStr & k & "_" & baseNameStr
end if
set i to i + 1
end repeat
return fullpathText

733:名称未設定
16/01/21 02:03:39.34 DbKP7fYg0.net
>>674 です。文法が怪しいところをハンドラにして書き方変えたら自己解決しました。
>>676はif文がなぜか常に "存在しない" の方に行く。

下記なら理由はよくわからないがうまくいく。
on fileExists(fullpathText)
tell application "System Events"
if exists file fullpathText then
return true
else
return false
end if
end tell
end fileExists

734:名称未設定
16/01/21 09:41:56.94 sgs/8VkY0.net
if {isItemExists = false} then <- なんで{}とか使ってんの?
そもそも閉じる必要もないし。

735:名称未設定
16/01/21 11:22:21.54 ID6h33Zz0.net
以前AppleScriptの仕様に文句言ってた人では
見切りつけて使うのをやめたんじゃなかったのか

736:名称未設定
16/01/25 23:43:26.79 2FBTd4al0.net
作業完了時にチャリーンと音を鳴らすにはどうするのが良いでしょうか?

下記のしっくりこない対策しか思いつきません。

・ beep
音が気にくわない。

・ AppleScriptobjc で NSSound クラスを使う。
本に載ってる。コピペでそのまま使えそう。
でも、なにか大げさで違和感のある対策。

・ iTunes でサウンドファイル再生。
大げさ、重い。

737:名称未設定
16/01/25 23:56:31.78 NpvROCdu0.net
do shell script で afplay

738:名称未設定
16/01/26 00:07:09.92 OaX1S4kQ0.net
通知ありでも良ければ
display notification with title "終了しました" sound name ""

ユーザのライブラリ/Soundsに音源ファイル入れておけばOK
sound nameに拡張子無しのファイル名で音が出る。
名前が違えば通常の通知音が鳴る。

739:名称未設定
16/01/26 03:37:54.07 UV5S+svp0.net
>>681 >>682
役に立つ回答有り難うございます。

できました。
do shell script "afplay /System/Library/Sounds/Ping.aiff"

740:名称未設定
16/01/29 21:32:54.40 uUQj78VG0.net
>>683
afplay -v 0.1 とかでボリューム調整な
うちもそうやって通知音出してるわ

741:名称未設定
16/01/30 23:18:50.99 IOL1PbEa0.net
起動してウインドウ位置とウインドウサイズを固定するAutomatorのアプリをApple Scriptで作りたいのですが、一部のアプリで
tell application "アプリ名"
activate
tell front window
set bounds to {0, 0, 0, 0}
end tell
end tell
でエラーウインドウが出るだけでアプリの起動もできません。

他の方法として
tell application "System Events"
を使えばいいようですが、どんな風にかけて思った動作がするにか想像もできません…
どなたか助けていただけませんか。

742:名称未設定
16/01/30 23:46:59.63 LtqeZOXR0.net
「一部のアプリ」でなんだかよくわからない「エラーウインドウ」ね……
エスパー募集かな?

743:名称未設定
16/01/30 23:59:59.45 IOL1PbEa0.net
URLリンク(i.imgur.com)
こんなウインドウしか出てこないのでどうすればいいのか全くわかりません。
アプリはTweetbotなどです。

特に�


744:Gスパーは必要ではありません。



745:名称未設定
16/01/31 00:15:34.51 sppaYWuL0.net
>>687
URLリンク(goo.gl)

746:名称未設定
16/01/31 00:43:24.43 Lb5Fe+7B0.net
参考までに。

tell application "System Events"
set app_name to name of first item of (every application process that (frontmost is true))
tell process app_name
set a_win to (1st item of (every window that subrole is "AXStandardWindow"))
set position of a_win to {20, 60}
set size of a_win to {1600, 1200}
end tell
end tell

747:名称未設定
16/01/31 00:50:08.78 H6u9ib8G0.net
tell application "System Events"
tell process "アプリ名"
tell front window
set position to {x, y}
set size to {w, h}
end tell
end tell
end tell
で行けんじゃないの

748:名称未設定
16/01/31 19:25:53.91 T2G1Wg900.net
Mailソフトでフィルタリングされた迷惑メール複数をmeiwaku@dekyo.or.jpに添付ファイルとして、転送できるようなAppleScriptって書けないものでしょうか?

件名はjunk mail transferとしたいです。

749:名称未設定
16/01/31 19:30:26.66 8Nm40lSC0.net
どこまで出来たか晒しなよ
見てくれる人はいっぱいいるから

750:名称未設定
16/01/31 22:37:40.80 namoAALa0.net
>>691
こういう系統のスクリプトはスパムに使えるから答えをもらえないかも。

751:名称未設定
16/01/31 23:31:50.09 vPfKXtBI0.net
んなこたあないw
そんなこと言い出したら>>685だってイタズラ用かもしれんぞ
答えをもらえるかどうかは>>1を読んだかどうかと女子高生か否かで決まる

752:名称未設定
16/02/06 20:13:14.62 LOyohfZN0.net
>>691
>Mailソフトでフィルタリングされた迷惑メール
迷惑メールが収められているフォルダー内のデータ
に対して(1、2)を行うスクリプト:
1) 文字検索して
2) 検索結果をmeiwaku@dekyo.or.jpに送る
をpythonやrubyなどで書いた方が、同じ作業を
AppleScriptで書くよりも絶対に楽だと思う。
 5万円払ってくれるのなら、AppleScriptで書いて
もらえるとも思うが。

753:名称未設定
16/02/06 22:05:24.20 PZIXO4V20.net
細かいこと言わなきゃ 環境設定→ルール の実行パターン「メッセージを転送」で済みそうな気もするけど。

もしくは、実行パターンとして「AppleScriptを実行」てのもあるからそこ使えば作れるかも。

754:名称未設定
16/02/07 01:23:00.23 gYLu6YbZ0.net
AppleScriptでメーラー作ればいいんじゃない

755:名称未設定
16/02/07 07:23:31.49 z112vJ6p0.net
>>695
それはない。

756:名称未設定
16/02/08 16:46:27.39 pdtAg3Je0.net
>>692~692

THX from 女子高生

757:名称未設定
16/02/24 18:45:41.19 PaiBzqoz0.net
教えてください。
URLリンク(hottinroof.blog54.fc2.com)
のスクリプトを使って写真のリネームをしています。本日 El capitanにアップデートしたところ
「sh: exiftool: command not found Finder でエラーが起きました:sh: exiftool: command not found(127)」
と動かなくなりました。
exiftoolsは最新のmac用 10.11です。調べたところ、置き場所が変わったとの記述を見つけ、
スクリプトを開いて開いて POSIX path にMacintosh/usr/local/bin/exiftoolを当てようと色々試したのですが動かず的外れ
だったようです。
どなたかどうすればexiftoolが有効になるのか教えてください。お願いします。

758:名称未設定
16/02/24 19:33:34.55 PcH/7f1n0.net
頭の Macintosh 取って、 /usr から始めればいいんじゃない

759:名称未設定
16/02/25 10:01:21.68 cT4RuRny0.net
>>700
このAを各々Bと置き換えたらできないかな?
A:
set scrptMO


760: to "exiftool -model " & cameraname set scrptMO to "exiftool -DateTimeOriginal " & hidukejikoku B: set scrptMO to "sips --getProperty model " & cameraname set scrptMO to "sips --getProperty creation " & hidukejikoku



761:名称未設定
16/02/26 07:53:10.85 /CCFtnsQ0.net
>>701
>>702
だめでした。pathの変更を記述しただけじゃダメみたいです。
ちょっとお手上げ。

762:名称未設定
16/02/26 09:09:33.85 xF52EGeJ0.net
>>703
試しにel capitanで実行しても動いたよ。>>702
変な所いじってない?
元のまま該当部分だけ置き換えた?

エラーが出るならなんてエラーが出てるかも書かないと。

763:名称未設定
16/02/26 16:20:14.71 atUtY2LD0.net
exiftoolいらんかったんや

と思ったけど、調べてみたら、一発で所望のリネームまでできるじゃないか
exiftool '-FileName<$model $DateTimeOriginal%+c.%e' -d '%Y%m%d %H%M%S' ファイル...
ドロップレットで処理するとしても長々いらんかったんや

764:名称未設定
16/02/26 18:59:39.08 /CCFtnsQ0.net
>>704

コンパイルした後、保存するの忘れてました!!
うまく動きました。

本当にありがとうございます。
これで母艦もEl Capitanに移行できます。

ありがとうございます。

765:名称未設定
16/02/27 11:16:23.52 krnL6K6A0.net
なにそれーw

766:名称未設定
16/02/29 18:41:06.52 FzgXm9MA0.net
上の処理をシェルスクリプトの勉強がてら書いてみたんだけど、
よくわかっていないのでイマイチすっきりしない。
どう書いたらスマートに書けるか詳しい人教えて。
for f in `ls` ; do mv $f `sips --getProperty model $f | sed -n '/[0-9: ]$/p' | sed 's/ model: //'`

767:名称未設定
16/02/29 18:42:34.87 FzgXm9MA0.net
なんかとちゅうで切れてるので再アップ
for f in `ls` ; do mv $f `sips --getProperty model $f | sed -n '/[0-9: ]$/p' |
sed 's/ model: //'`"_"`sips --getProperty creation $f | sed -n '/[0-9: ]$/p' |
sed 's/[^0-9]//g'`".jpg"; done

768:名称未設定
16/02/29 20:57:20.57 7rDDasVF0.net
おめーはよー、シェルスクリプトだけの話しかしねーならスレ違いだろボケー
このスレらしくImage Eventsで書き直した版持ってこいよ

769:名称未設定
16/03/15 18:33:52.75 D7JpzMMj0.net
do shell scriptを使ってpython 3を実行させたいのですが、
Aの記述の様にパスに日本語を含むファイルを実行しようとすると
can't open file '<unprintable file name>': [Errno 92] Illegal byte sequence" number 2とエラーがでます。

A: do shell script"〜.pyenv/versions/3.3.0/bin/python 〜/Desktop/テスト.py"
B: do shell script"python 〜/Desktop/テスト.py"

ファイル名に日本語を含まない場合、ターミナルから直接実行した場合、Bの記述の場合は
いずれも問題なく実行できます。

どうしたら上の記述で実行できるでしょうか?
pandasを使いたくてpython 3の方に入れたのですが、
Bの記述だとpandasが認識されず、Aの記述だとpandasが認識されます。
ターミナルから実行する場合はBでも問題なくpandasは認識されます。

pandasはpipを使って入れています。

770:名称未設定
16/03/15 19:05:41.06 8FCCxXqP0.net
例のあれ、LANG=ja_JP.UTF-8 設定して解決じゃないの

771:名称未設定
16/03/16 02:06:49.60 SCX7A7Ur0.net
$ "hoge -hoge '/日本語/日本語'"
ってするんじゃないの

772:名称未設定
16/03/16 02:30:44.77 uKUS3Bk/0.net
           |
            |  彡⌒ミ
           \ (´・ω・`)またhageの話してる
             (|   |)::::
              (γ /:::::::
               し \:::
                  \

773:名称未設定
16/03/16 08:57:16.32 wz/7bs


774:1s0.net



775:名称未設定
16/03/16 08:59:05.73 aX1+TI1t0.net
>>715
いやコマンドのコードに書き込めよ
中に書いてあっても読み込まないよ。

776:名称未設定
16/03/16 09:14:46.67 wz/7bs1s0.net
>716
コマンドに入れたらできました!
ありがとうございます。次からはおまじないで入れとくことにします。

777:名称未設定
16/03/16 10:42:50.80 gHrb8tu60.net
テキストエディットで文末に表示とカーソルを移動させたいのですが、
どこをどう直せばよいですか?

tell application "TextEdit"
activate
tell front document
set selection to last paragraph
end tell
end tell

778:名称未設定
16/03/16 11:40:47.13 wz/7bs1s0.net
>>718
詳しく知らないけど、ぱっと見それらしい命令がないので無理じゃないかな?
最終目的がわからないけど直接テキストデータいじった方が早いかも。

779:名称未設定
16/03/16 11:51:48.56 4r7QBeuW0.net
キーバインドで操作出来るんじゃないの

780:名称未設定
16/03/16 12:48:41.48 gHrb8tu60.net
>>719-720
ありがとうございます

特定のテキストファイルに
コピーしたメモを貼り付けておきたいのですが、
文末にどんどん追加していきたいので、
そのテキストファイルを開いたら、カーソルが一番下に行くようにしたかったです。

Alfredのトリガーで「そのファイルを開いて、スクリプトで文末に移動」
というのを登録して使おうと思いました。

やっぱり、素直にこうするのがいいのかもしれませんね・・・

tell application "TextEdit"
activate
tell front document
tell application "System Events" to key code 125 using {command down}
end tell
end tell

781:名称未設定
16/03/16 13:14:48.69 wz/7bs1s0.net
コピーってのがクリップボードへのコピーならカーソルを移動しなくてもこれでできる。
tell document 1 of application "TextEdit" to set every text to every text & return & (the clipboard)

782:名称未設定
16/03/17 02:02:48.03 tknj+PfJ0.net
速度的にはどうなんだろ
on replaceReg(str, fnd, opt, rep)
set JsScr to "
var str = " & quoted form of str & ";
var fnd = new RegExp(" & quoted form of fnd & "," & quoted form of opt & ");
var rep = " & quoted form of rep & ";
str.replace(fnd, rep);
"
set ret to run script JsScr in "Javascript"
return ret
end replaceReg

783:名称未設定
16/03/17 05:32:07.90 U21OisUH0.net
>>723
どうもapplescriptに見えんなーと思ったらapplescriptじゃなかった
JS使いにとってはASで素直に置換ができない問題がこれで解消されるわけか?
まあしかしASだけでルーチン組むのとあんまり変わらんから
やっぱり速度の問題になるよね

784:名称未設定
16/03/17 06:23:24.08 nfY5T6ih0.net
Doublequoteはescape必要に見えるけど、大丈夫?

785:名称未設定
16/03/17 07:12:42.55 3oRdLlSm0.net
失礼、勘違いだった。

786:名称未設定
16/03/17 09:20:51.65 DWzTlfih0.net
>>723
いいね、これ

前に似たようなことやりたくて、JSで書いたやつを~/Library/Script Librariesに置いてASから使おうとしてダメだったから諦めてた
代わりにuse framework "Foundation" ... NSRegularExpressionで書いて使ったけど見た目ごちゃごちゃしてるしマンドクサかった

787:名称未設定
16/03/17 20:45:27.45 tknj+PfJ0.net
721です。昨日から触り始めたので、目新しいことばかりです。
配列や�


788:Iブジェクトがlistやrecordとして返ってくるのは ちょっと嬉しい。今更かもしれませんが。 set JsScr to " var obj = {str:'apple', arr:['ふじ','レッドデリシャス']}; obj " set ret to run script JsScr in "Javascript" log "class of ret:" & class of ret log "class of arr of ret:" & class of arr of ret repeat with i in arr of ret log i end repeat



789:名称未設定
16/03/17 20:50:16.07 tknj+PfJ0.net
721さんではなくて717でした、失礼

790:名称未設定
16/03/17 21:01:56.68 ine1sMXC0.net
JXAじゃいかんのか?
URLリンク(qiita.com)

791:名称未設定
16/03/29 21:22:05.25 0SkJ9rAs0.net
>>717
NSRegularRexpression をラップしてたマンドくさくないシンプルなインタフェースのライブラリをつくればいいのではないかしら。

792:名称未設定
16/04/22 15:37:59.52 hRzbi5SJ0.net
ASOCでウインドウをフローティング(常に前面)にしたいのですが、
どこでどう設定したらいいんでしょう?

793:名称未設定
16/04/22 20:48:33.70 OU5jWO7P0.net
>>732
  property win : missing value --xivでウィンドウど接続
--初期化で
  win's setLevel_(3)

794:726
16/04/25 10:29:40.54 H7rkWOxZ0.net
>>733
すみません。エラーも起きませんが、フローティングにもなりません。
現在記述してあるのは、下記のみです。xcode 3.2.6 os10.6.8
script UntitledAppDelegate
property parent : class "NSObject"
property _win : missing value
on applicationWillFinishLaunching_(aNotification)
_win's setLevel(3)
end applicationWillFinishLaunching_
on applicationShouldTerminate_(sender)
return current application's NSTerminateNow
end applicationShouldTerminate_
end script

795:726
16/04/25 10:44:02.50 H7rkWOxZ0.net
アンダーバーが抜けていました。アンダーバー入れてもフローティングにはなりません。
_win's setLevel_(3)

796:名称未設定
16/04/25 14:24:15.74 pJvZnNc40.net
>>734
  on applicationWillFinishLaunching_(aNotification)
   set aB to current application's NSBackingStoreBuffered
   set aRect to {{300, 300}, {300, 300}}
   tell current application's NSWindow's alloc()
    tell initWithContentRect_styleMask_backing_defer_(aRect, 7, aB, false)
     tell current application's NSView's alloc()
      tell initWithFrame_(aRect)
        setNeedsDisplay_(true)
        set aView to it
      end tell
     end tell
     setContentView_(aView)
     setDelegate_(me)
     setTitle_("TEST")
     setLevel_(3)
     makeKeyAndOrderFront_(me)
    end tell
   end tell
  end applicationWillFinishLaunching_

xiv怪しいから試しにwinnow作ってやってみて
これで出来ると思う

797:726
16/04/25 15:54:15.90 H7rkWOxZ0.net
>>736
ありがとうございます。
test windowはちゃんとフローティングになりました。
自分で作成したwindowはどこをどう設定したらいいんでしょう?

798:名称未設定
16/04/25 22:43:08.77 pJvZnNc40.net
>>737
xivのバグでoutlet接続しても接続されないってのがある、これはALを切ったりxivの設定を触ってると治る事がある
ただこれの場合はunrecognized functionとエラーログが出るのでおそらく別の問題。
通常、初期状態のxivのwindowをoutletを繋いでsetLevel_を呼び出せば、表示レベルが変更される。
マクロの定数をキャストしてな事による定数誤差の場合、>>736のコードも適用されないのでこれも違う
よってxivの設定が間違っている可能性が濃厚

799:726
16/04/26 09:37:28.68 TnaIN42b0.net
>>738
たびたびありがとうございます。
バグの可能性を聞いて、接続したり切ったり、設定を


800:変えたりして いじっていたらできることがありました。(2回成功しました) ただ、これといった確実な方法が見つからずほとんどの場合はできません。 フローティングにならない場合でも同じ設定でエラーは出ません。 手動でoutletsの設定したい場合はどうしたらいいのでしょう?



801:726
16/04/26 09:53:27.89 TnaIN42b0.net
連投すみません。
絶対とは言えないのですが、高確率で成功する方法を見つけました。
property win : missing valueとwin's setLevel_(3)の両方を書いてからoutletsに接続すると成功率が高いようです。
property win : missing valueを設定してwin's setLevel_を実行する前にoutletsに接続してしまうと高確率で失敗します。

802:名称未設定
16/04/26 11:06:47.77 g47x2a7n0.net
>>740
Visible At Launchをオフにしてコードでwindowを表示してみましょう。
もし表示出来たならOutletが正しく接続されているので他に原因がある事になります。
_win's makeKeyAndOrderFront_(me)
_win's setTitle_("TEST")--ついでにタイトルも変えてみましょう

xivのwindowは、初期設定状態でしょうか
例えばxivでwindowのHidesOnDeactivateをonにしていると、他のアプリに移動した時にウィンドウが消えます。

803:726
16/04/26 14:07:33.25 TnaIN42b0.net
とりあえず新規プロジェクトで実験しているので初期設定状態のままです。
_win's makeKeyAndOrderFront_(me)
_win's setTitle_("TEST")
を試した後からなぜか突然フローティングに失敗しなくなりました。
新規で作ってさっきまでうまくいなかったやり方で試しても大丈夫です。
よくわからないけど助かりました。ありがとうございます。

804:名称未設定
16/04/29 22:34:11.86 YksCyGws0.net
# sed - put commas at the end of every line in stdin
# awk - pass to awk to remove the linefeeds
# sed - remove the comma from the last line
# sed - turn all spaces into pluses
address=`sed -e "s/$/,/g" | awk '{ str1=str1 $0 " "}END{ print str1 }' | sed -e "s/, $//g" | sed -e "s/ /\+/g"`
open "URLリンク(www.amazon.co.jp)

Automatorのサービスで右クリックできるようにしたのですが、
これをつねにfirefoxで開くようにしたいです。
どのように付けくわえればよいでしょうか?

805:名称未設定
16/04/29 23:50:36.50 mmmN9YIf0.net
デフォルトブラウザがFirefoxならそのまま行くんじゃないの
それかopen -a Firefoxにするか

806:名称未設定
16/04/30 02:41:26.48 6hA5ZwKI0.net
または open -b org.mozilla.firefox

807:名称未設定
16/04/30 08:23:41.53 7vBWrPt20.net
>>744,739
ありがとうございます
デフォルトはSafariです
amazonの検索だけFirefoxにしたかったのです

教えてもらった行を最後に付けくわえてみたら、
Firefoxは起動するけど、検索自体はSafariのままでした。
付けくわえかた間違ってるのでしょうか・・・?

808:名称未設定
16/04/30 10:25:24.23 OIJSFV4t0.net
加えるんじゃなくて、最後の行のopenを置き換え

809:名称未設定
16/04/30 10:42:10.10 7vBWrPt20.net
>>747
ありがとうございます!
うまくいきました、助かりました。

810:名称未設定
16/05/12 13:39:13.01 OI34QQdR0.net
すごく単純な質問かもしれませんがご容赦ください
display dialogのテキストフィールドに、ユーザーが計算式を入力して、スクリプトに計算させるにはどうしたらいいでしょうか

例えば1/2+12/24と入力すると1と返ってくるようにしたいのです

811:名称未設定
16/05/12 14:20:47.24 U+AgI3Kr0.net
set r to "1/2+12/24"
run script r

812:名称未設定
16/05/12 14:23:56.87 OI34QQdR0.net
>>750
ありがとうございました! 助かります!
全く思いつきませんでした!

813:名称未設定
16/06/09 22:46:54.30 e2kQHPZ50.net
クリップボード内のテキストを置換や挿入削除するのを使っています。
これを改造


814:して、改行も文字と同じように置換や挿入削除したいのですがどのようにすればいいのでしょうか? 例えば「ほげほげ」を 「ほげ ほげ」 に置換、またその逆もなんですが。 改行そのものは""で括らず「ASCII character 13」などと書けばいいのまではわかりました。 try set the clipboard to «class ktxt» of ((the clipboard as text) as record) set orig_txt to the clipboard as text if orig_txt is not "" then set orig_txt to FindAndReplace(orig_txt, "hoge", "ほげ") set orig_txt to FindAndReplace(orig_txt, ASCII character 13, "★改行消したよ★") set the clipboard to orig_txt as text else error "The clipboard is empty..." number 1 end if on error err_msg number err_num reportErr(err_num, err_msg) end try on FindAndReplace(targetStr, pre, pro) set CurDelim to AppleScript's text item delimiters set AppleScript's text item delimiters to pre set targetStr to text items of targetStr set AppleScript's text item delimiters to pro set targetStr to targetStr as string set AppleScript's text item delimiters to CurDelim return targetStr end FindAndReplace



815:名称未設定
16/06/10 01:04:00.29 izjeg4LE0.net
set orig_txt to FindAndReplace(orig_txt, "ほげ", "ほげ" & return) -- ただしイマイチ
「ほげほげ」
 ↓
「ほげ
ほげ


set orig_txt to FindAndReplace(orig_txt, return, "")
「ほげ
ほげ

 ↓
「ほげほげ」

816:名称未設定
16/06/10 09:43:34.69 zdYeUK5r0.net
最初はとっつきにくいだろうけど、
ASで文字列処理するならrubyなりperlなり使った方が圧倒的にラクだよ。

set rubySc to "
#encoding: utf-8
$KCODE='u'
str=ARGV[0]
puts str.gsub(/[\\r\\n]/, \"\")
"
set c to the clipboard
set c to quoted form of c
set rubySc to quoted form of rubySc
set myresult to do shell script "ruby -Ku -e " & rubySc & " " & c

エラーが出る場合(ruby1.9以降)は$KCODE='u'の頭に#つけて。(コメントアウト)

817:名称未設定
16/06/10 10:39:21.65 +RUCD7ZN0.net
>>754
クリップボードに加工したいデータがあるのなら、pbpaste コマンドで ruby スクリプトの標準入力にデータを渡すべき。引数にはデータ容量の制限があるので、大きなデータの場合はエラーになる。
程度問題だけど、プロセス起動のオーバーヘッドは馬鹿にならないので、ほとんどの場合(とくに処理するデータが少ない場合)は外部コマンドを起動するよりAppleScript で閉じたほうが速い。

818:名称未設定
16/06/10 10:56:48.24 dGbKue2u0.net
俺は>>723推し

819:名称未設定
16/06/10 11:09:32.87 XlL7naR70.net
>>755
pbpasteなんて知らんかった。ありがとうございます。

>>756
js使える環境ならそれでもいーですね。

一応pbpaste使った場合。>>

set rubySc to "
#encoding: utf-8
$KCODE='u'
str=`pbpaste`
puts str.gsub(/[\\r\\n]/, \"\")
"
set rubySc to quoted form of rubySc
set myresult to do shell script "ruby -Ku -e " & rubySc

820:名称未設定
16/06/12 19:21:52.55 VfsjxDNU0.net
>>753
あざっす!!!
改行はreturnなんですね。ひょっとして…とおもったら
タブはtabでした!おかげさまで色々はかどりそうです!

821:名称未設定
16/06/16 22:26:54.48 oXUR4BNt0.net
予約語を変数名にしたら悲惨な事になるで

822:名称未設定
16/06/19 12:15:13.80 I4OKLVqd0.net
(alfredとかでホットキーを登録して、)
日時をテキストで挿入できるようにしたいのですが、

set the clipboard to (do shell script "date '+%Y-%m-%d %H:%M:%S'")

ここからどうすればいいでしょう?
これをやって、
さらにコマンドV、と2段階押さないといけない。
それを一回で済ませたい
なにかいい方法があれば教えてください。
(テキストを扱うどのアプリでもできるようにしたいです)

823:名称未設定
16/06/19 13:10:18.50 pah9kP3e0.net



824:AlfredでペーストするとこまでWorkflow組めるんじゃないの 続きは↓で 【コマンドラインランチャー】Alfredに惚れ込むスレ http://potato.2ch.net/test/read.cgi/mac/1423312726/ AppleScriptでやるなら tell application "System Events" keystroke "v" using command down end とかでいけるけど



825:名称未設定
16/06/19 14:20:31.68 I4OKLVqd0.net
>>761
それでできるんですが
ホットキー自体がコマンドとかシフトとかと組みあわせないといけないので、
おしたら、さっと指を離すようにしないと「ペースト(コマンド+v)」にならないですね・・・

とりあえずありがとうございます
スレ違いすみませんでした

826:名称未設定
16/06/26 15:07:27.61 150GcjU60.net
Macの起動項目で、アプリケーション形式にしたscriptを立ち上げているのですが

他の起動項目の一般アプリケーションより、そのスクリプトを前面に出したくて悩んだ結果、ソースの先頭に

tell application "そのスクリプト"
activate
end tell

で、前面にさせてるのですが

これだとスクリプト編集プログラムでデバッグしてるときと、アプリケーション形式に書き出したときとで
"スクリプト編集プログラム"を"そのスクリプト"に書き直さなければいけません

自分自身のことを指すmeみたいな名前で一本化できれば良いと思って探してるのですが
何か良案がありましたら、教えてください

827:名称未設定
16/06/26 15:08:34.88 150GcjU60.net
757の環境は10.9Mavericksです

828:名称未設定
16/06/26 15:24:21.85 icb4+j3C0.net
tell me
if not frontmost then
-- ここに757の3行入れる
end if
end tell

とか?

829:名称未設定
16/06/26 16:17:59.11 MDzRPSme0.net
tell me to activate じゃあかんのか

830:名称未設定
16/06/27 00:15:21.98 bxICCxF00.net
アプリケーション形式ならactivateだけでも手前になるよ。

あと、スクリプト編集プログラムのツールバーに「アプリケーションを実行」ボタンが増えてる。
ただMavericksは無かったかも。

831:757
16/06/27 22:15:44.94 /fW9xSmu0.net
>>765-767
レスありがとうございます。meで行けるんですね

832:名称未設定
16/07/28 08:35:37.06 pp5916vT0.net
ネットワークのフォルダのファイルを指定して開くようにしているけど、
別々の環境(自宅と職場)で50個のファイルがあるフォルダと、1000個の
ファイルがあるフォルダで表示にかかる時間がまったく違う。

これはファイルを探す時間がかかるって事?

833:名称未設定
16/07/28 10:28:44.62 CZMUn6I+0.net
状況が曖昧。条件がごっちゃになってる。
単に50個と1000個の時間差の話なら、自宅と職場はどういう関係があるの?
職場では50個も1000個も差がなくて、自宅では50個と1000個に差があるって話?
どういう事にせよ、フルパス指定なら時間差なんてないような気がするが。

834:名称未設定
16/07/28 12:54:51.82 pp5916vT0.net
すまん どちらも環境的にはレガシーなんだけど。

職場では導入間もないので50個、画像サーバ C2D Win7 画像フォルダはシステムと同じボリューム
クライアント MDD OSX10.4
自宅では1000個 画像サーバ CD VIsta 画像フォルダはシステムと別パーテーション
クライアント C2D OSX10.6

職場では瞬時に表示されるが、自宅では6秒以上かかる。
時間ができたら職場に1000個のUSBでも挿してテストしてみる。

835:名称未設定
16/07/28 13:13:33.21 CZMUn6I+0.net
それだけ色々違う状況じゃ全く比較にならんと思うが。
ボードやHDDの速度も違えばネットワーク速度、OSの処理速度どれもちがうだろ。
とりあえず自宅で50個のフォルダを試した方が早いんじゃないか?
それで遅けりゃファイル数の問題じゃないって事だろ。

836:名称未設定
16/07/28 23:29:55.74 spKpeHA60.net



837:1000個を捨てて、50個100個150個としてみた。 快速に表示された。 異常のあるファイルが混在していたのかもしれない。 検査するユーティリティでも探してみる。 スマソ。



838:名称未設定
16/08/09 23:53:11.93 kP5QoMAvS
tell application "System Events" to shut down
をアプリとして使っています。
これでシャットダウンできるのですが、再度Macを起動させると、
ウィンドウの復元機能により、上記のアプリが起動されて再びシャットダウンしてしまいます。
何か解決策はありますでしょうか?

839:名称未設定
16/08/15 15:55:08.48 Z+tLenng0.net
超自己満スクリプト
do shell script "..." with administrator privileges でパスワード入れるのが面倒になってきた、
といってスクリプトにもろ書きして目に触れるのもなんか嫌だ

・キーチェーンアクセスでパスワード項目を作成
 アカウント/パスワード: applescript/パスワード
 アクセス制御: securityコマンドに常に許可(コマンド実行時の初回のダイアログででも)
・スクリプト
set |password| to do shell script "security find-generic-password -a applescript -w"
do shell script "killall -HUP mDNSResponder" password |password| with administrator privileges

840:名称未設定
16/08/15 19:56:52.87 NvXN/2Mn0.net
>>775
これはおもしろい。毎回思考停止してパス入れてたからその発想がなかった
たいへん参考になりました

841:名称未設定
16/08/22 05:48:20.56 Tz21TGij0.net
スクリプトエディタのフォーマット設定が時々デフォルトに戻っちゃんだけど、この設定ってどこに保存してあるんでしょうね?
手作業で戻すのは面倒なのでファイル差し替えで戻せると良いんだけど

842:名称未設定
16/08/22 06:01:31.95 Tz21TGij0.net
自己解決
$HOME/Library/Preferences/com.apple.applescript.plist
のようでした

843:名称未設定
16/08/23 09:37:34.26 xJQwUjZc0.net
tell application "Image Events"
set theImage to open theDropItem as alias
tell theImage
set theDimensionsList to dimensions
end tell
close theImage
end tell

set imageHeight to item 2 of theDimensionsList
set imageWidth to item 1 of theDimensionsList
set padImageHeight to imageHeight + 50
set padImageWidth to imageWidth + 50
set scriptCommand to "sips " & (quoted form of theDropItemPOSIXPath) & " -s formatOptions 100% -p " & padImageHeight & " " & padImageWidth & " --padColor 555555 "
ここからさらに#999余白6pxを付加する記述を教えてください。
現在50px付加jpgをさらに6px付加スクリプトに投げてます。

844:名称未設定
16/08/23 11:09:57.92 0A/9/lIK0.net
間違ってるかもしれないが、2回処理(一旦保存)しないと無理なんじゃないかな?
連続して実行しても2番目の処理しか行われないっぽい。

あと、質問するときはそのままで動く物を載せた方がいい。

845:名称未設定
16/08/23 12:46:18.96 6f9IVph50.net
on open dropObjects
tell application "Image Events" to launch

repeat with theDropItem in dropObjects
set theDropItemPOSIXPath to POSIX path of theDropItem

tell application "Finder"
set theDropItemName to name of theDropItem
end tell

tell application "Image Events"
set theImage to open theDropItem as alias
tell theImage
set theDimensionsList to dimensions
end tell
close theImage
end tell

846:名称未設定
16/08/23 12:49:20.77 6f9IVph50.net
774の続き。
set imageHeight to item 2 of theDimensionsList
set imageWidth to item 1 of theDimensionsList

set padImageHeight to imageHeight + 50
set padImageWidth to imageWidth + 50

set scriptCommand to "sips " & (quoted form of theDropItemPOSIXPath)
& " -s formatOptions 100% -p " & padImageHeight & " " & padImageWidth
& " --padColor 555555 " & " --out " & "~/Desktop/" & (quoted form of ("pad" & theDropItemName))

do shell script scriptCommand
end repeat

end open
ここからさらに#999余白6pxを付加する記述を教えてください。
現在50px付加jpgをさらに6px付加スクリプトに投げてます。

847:774
16/08/23 12:53:52.23 6f9IVph50.net
もし二つのスクリプトが必要な場合、一つ目のスクリプトの最後に「保存後6px.app」に投げるを書き、
6px.appの処理の最後に「JPEGで上書き保存」を各方法を教えて頂けないでしょうか。
それも不可な場合、一つ目のスクリプトはこのままで、2つめのスクリプトの最後に「上書き保存」の記述を教えてください。。

848:名称未設定
16/08/23 13:03:51.80


849: ID:0A/9/lIK0.net



850:774
16/08/23 13:10:30.12 6f9IVph50.net
一回目のend repeatの直後に
tell application "Image Events" to launch..と続けてみましたが二回目の色指定余白しか付加できません。
なにが間違ってるんでしょうか。。

851:774
16/08/23 13:10:30.46 6f9IVph50.net
一回目のend repeatの直後に
tell application "Image Events" to launch..と続けてみましたが二回目の色指定余白しか付加できません。
なにが間違ってるんでしょうか。。

852:名称未設定
16/08/23 13:26:32.34 rviZjxD00.net
所望のオプション付けた sips を一つ追加、実行すればいいんじゃないの?

853:名称未設定
16/08/23 13:37:02.69 0A/9/lIK0.net
>>786
元の画像に対して違う処理をしているだけだから。
一旦保存した画像に対してもう一度処理しないと。

854:774
16/08/23 14:43:56.00 6f9IVph50.net
1度目の処理でデスクトップに保存すると2度目の処理が最初のドロップアイテムに対して行ってしまったため
一度目は上書き保存、二度目でデスクトップに書き出しをしました。
出来れば一度目と二度目の後にデスクトップに書き出しできるドロップファイルをいじらずに済んで嬉しいんですが・・
set scriptCommand to "sips " & (quoted form of theDropItemPOSIXPath) & " -s formatOptions 100% -p " & padImageHeight & " " & padImageWidth & " --padColor FFFFFF "
do shell script scriptCommand

tell application "Image Events"←二度目処理・・

855:名称未設定
16/08/23 16:13:23.56 w5kLaLoU0.net
色は判りづらいので変えてる。
ちなみにquoted formは要らんよ。
set padImageHeight to padImageHeight + 6
set padImageWidth to padImageWidth + 6
do shell script "sips " & "~/Desktop/pad" & theDropItemName & " -p " & padImageHeight & " " & padImageWidth & " --padColor FF0000"

856:774
16/08/23 16:38:58.45 6f9IVph50.net
>>790
ありがとうございます!30余白が従来通りデスクトップ保存、二度目に教えたいただいた物を貼り付けましたが上手く動かず。。
「デスクトップに"padファイル名.jpg"がない」?とか言われます。。

857:名称未設定
16/08/23 17:16:48.56 w5kLaLoU0.net
>>791
そりゃ入れる場所間違ってるんじゃない?
やってること理解すればどこでエラーが起きてるのかわかる。

858:774
16/08/23 17:28:39.87 6f9IVph50.net
以下にて原画→枠線1追加→枠線2追加→上書き保存で妥協しました。
できれば原画→枠線1追加→枠線2追加→同名でデスクトップに新規保存、がしたかった。。
on open dropObjects
tell application "Image Events" to launch

repeat with theDropItem in dropObjects
set theDropItemPOSIXPath to POSIX path of theDropItem

tell application "Finder"
set theDropItemName to name of theDropItem
end tell

tell application "Image Events"
set theImage to open theDropItem as alias
tell theImage
set theDimensionsList to dimensions
end tell
close theImage
end tell

set imageHeight to item 2 of theDimensionsList
set imageWidth to item 1 of theDimensionsList

set padImageHeight to imageHeight + 50
set padImageWidth to imageWidth + 50

859:名称未設定
16/08/23 17:29:22.88 6f9IVph50.net
続き・・
set scriptCommand to "sips " & (quoted form of theDropItemPOSIXPath)
& " -s formatOptions 100% -p " & padImageHeight & " " & padImageWidth & " --padColor
55555 "
do shell script scriptCommand

tell application "Image Events"
set theImage to open theDropItem as alias
tell theImage
set theDimensionsList to dimensions
end tell
close theImage
end tell

set imageHeight to item 2 of theDimensionsList
set imageWidth to item 1 of theDimensionsList

set padImageHeight to imageHeight + 5
set padImageWidth to imageWidth + 5

set scriptCommand to "sips " & (quoted form of theDropItemPOSIXPath)
& " -s formatOptions 100% -p " & padImageHeight & " " & padImageWidth & " --padColor
888888 "
do shell script scriptCommand

end repeat
end open

860:名称未設定
16/08/23 17:44:26.75 w5kLaLoU0.net
自分でアップしたものを、ちょこちょこ変更するから動かなくなる。
俺の書いた部分と自分の書いた部分の差異もわからないなら変に触らないほうがいいよ。

861:名称未設定
16/08/23 17:47:21.30 NoSsmXKJ0.net
高さと幅に奇数を加えるのがモニョモニョする

862:名称未設定
16/08/23 23:44:36.69 iI3N2afK0.net
全部 Image Events でやっちゃダメ?

on open drop_objects
repeat with drop_object in drop_objects
set drop_object to drop_object as string
tell application "Image Events"
repeat with item_modify_data in {{pad_margin:50, pad_color:{85 * 257, 85 * 257, 85 * 257}}, {pad_margin:6, pad_color:{153 * 257, 153 * 257, 153 * 257}}}
set this_image to open file drop_object
set the_dimensions to dimensions of this_image
pad this_image to dimensions {(item 1 of the_dimensions) + (pad_margin of item_modify_data), (item 2 of the_dimensions) + (pad_margin of item_modify_data)} with pad color pad_color of item_modify_data
save this_image
close this_image
end repeat
end tell
end repeat
end open

上書きしちゃうので元とっておきたいときは画像複製してからやってね

863:774
16/08/24 12:20:13.50 Eu4tDqDr0.net
>>795
ありがとうございます、教えて頂いた一行を入れて動かせるようにトライします。
>>796
確かに偶数じゃないと気持ちが悪いですね、直します。。
>>797
ありがとうございます、こんなに短い命令文で書けるんですか。。
ここの最後に「デスクトップに同名ファイル名・形式で保存」ができるようにトライしてみます。

864:名称未設定
16/08/24 12:23:44.02 KUHn3SeV0.net
先にコピーしてから処理すればいいんじゃないの

865:名称未設定
16/08/29 14:51:09.10 hh1W


866:w9bW0.net



867:名称未設定
16/08/29 15:26:57.61 an6yXUEQ0.net
ls -1 | perl -lne 's/A/B/; push @l, $_; END { print join

868:名称未設定
16/08/29 15:29:36.14 an6yXUEQ0.net
↑ 後ろ切れちゃった

ls -1 | perl -lne 's/A/B/; push @l, $_; END { print join " ", @l }' | open -f

869:名称未設定
16/08/29 16:16:40.84 hh1Ww9bW0.net
>>802
ありがとうございます!!ただ言い忘れましたがapplescriptで教えてください!
ファイルをスクリプトアプリに入れるとそのファイル名から拡張子を除きAという文字をBに置換後に
テキスト(自分JEditです・・)が開いてそこにペーストされるという感じです!

870:名称未設定
16/08/29 17:43:45.55 mi8It8rt0.net
>>803
とりあえず>>1

871:名称未設定
16/08/30 09:14:23.39 XbvJ0yp10.net
JEdit持ってないからTextEditで
複数ファイル渡すと別々に分かれることがある(理由不明)
on open someItems
set outNames to {}
repeat with anItem in someItems
tell application "Finder"
set aName to name of anItem
set anExte to name extension of anItem
if anExte is not "" then
set aName to text 1 thru ((length of aName) - (length of anExte) - 1) of aName
set anExte to "." & anExte
end if
considering case
if aName contains "A" then
set aName to do shell script "echo " & quoted form of aName & " | sed 's/A/B/'"
end if
end considering
set end of outNames to aName & anExte
end tell
end repeat
set oldASTID to AppleScript's text item delimiters
set AppleScript's text item delimiters to {" "}
set outNames to outNames as text
set AppleScript's text item delimiters to oldASTID
set outNames to outNames & linefeed
tell application "TextEdit"
launch
set aDoc to make new document
set text of aDoc to outNames
activate
end tell
end open

872:名称未設定
16/08/30 09:28:21.06 AdsaidQG0.net
>>805
スクリプトの神様有難うございます!
お陰様でJEditにスペース区切りでペーストされました、が!
拡張子までペーストされてしまいます!

873:名称未設定
16/08/30 09:37:45.71 +h0eq0WK0.net
ちょっとは自分で工夫しろよ

874:名称未設定
16/08/30 10:32:40.56 XbvJ0yp10.net
>>803
>拡張子を除きAという文字をBに置換後に

どっちなんだろな~と思いつつ、拡張子にあるAは置換しないと解釈することにして
拡張子はわざと残した
あとは適当にやってちょ~よ

875:名称未設定
16/08/30 16:22:49.96 cgL2/WZD0.net
ここまでおんぶにだっこで「されてしまいます!」じゃねえよ…


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch