AppleScript アップルスクリプト 質問、発表 6at MAC
AppleScript アップルスクリプト 質問、発表 6 - 暇つぶし2ch650:名称未設定
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
ここまでおんぶにだっこで「されてしまいます!」じゃねえよ…

876:名称未設定
16/08/30 18:05:45.33 CY0X5lu10.net
どう見ても丸投げなんだから自分でどうこうできるわけがない

877:名称未設定
16/08/30 18:39:38.33 PZv9P6aX0.net
>>806
氏ねよクズ

878:名称未設定
16/08/30 19:28:50.83 AdsaidQG0.net
>>808
まずは拡張子を外してから痴漢、最後に拡張子を戻してテキストにペーストしてたんですね!
この部分を削除して希望の通りのフォーマットでコピペされました!
神様有難うございます!!

879:名称未設定
16/08/30 19:31:40.88 PFtNseYe0.net
こーゆーのを、厚顔無恥っていうのか?

880:名称未設定
16/08/30 19:38:21.79 +sIhfrvl0.net
可愛い子には旅をさせよ

881:名称未設定
16/09/06 23:07:59.42 AbjjUDuP0.net
文字列をパースしてdateオブジェクトに変換したいのだけど、システム設定に非依存でやる方法を教えてください。

set theDateString to

882:名称未設定
16/09/06 23:09:51.36 AbjjUDuP0.net
文字列をパースしてdateオブジェクトに変換したいのだけど、システム設定に非依存でやる方法を教えてください

set theDateString to "2016/9/6"
set theDate to date theDateString

の時、システム設定が和暦になってると theDateは "平成2016"になってしまいます
かといって、set theDateString to "H28/9/6"とすると、システム設定が西暦の場合エラーになります

システム設定のフォーマットに依存せず、テキストから正しく�


883:喆tオブジェクトに変換する方法が思いつきません。 よろしくお願いします。



884:名称未設定
16/09/07 00:12:26.20 3MTRzdxL0.net
和暦と西暦の変換処理を自分で書いちゃうのはダメなの?

まず、dateオブジェクト内は西暦で統一しておく

dateオブジェクトに入れる前の文字列に
昭和とか平成、Hの文字が入っていないかチェックする処理
→入っていなくて年の部分が4文字なら西暦と見なしてdateオブジェクト化
→入っていた時は和暦→西暦変換の処理をしたあとdateオブジェクト化

で、dateオブジェクトから日時を取り出して使う際に、
西暦のまま取り出すか、和暦に変換して取り出すか、
フラグでも立てて分岐する処理を書いておく

江戸時代とか、それより前の日付も対象になるなら、
その分チェック対象のリスト(配列)も用意しないとダメで
面倒そうだけども…

885:名称未設定
16/09/07 00:30:52.68 3MTRzdxL0.net
ちなみに自分の場合、

set theDate to current date
set (year of theDate) to 1999

こんな感じで、current date でdateオブジェクトをまず作っちゃって、
そのあと必要に応じて年月日を変更する形でやってて、
西暦しか使えないと思ってました…

>>816みたいな書き方すると、"2016/9/6" を直接
dateオブジェクト化したりできたんですね…

886:名称未設定
16/09/07 02:10:58.49 GDz+ptgZ0.net
>>816
かんたんかんたん

set theCommand to "date +%Y/%m/%d"
set theDateString to do shell script theCommand
set theDate to date theDateString

887:名称未設定
16/09/07 02:17:43.35 GDz+ptgZ0.net
あ、上のは検証してないんで一応補足しておくけど、もし年/月/日の並びがだめぽな
環境があるなら>>818のような定番の方法を使ってそれぞれ別個に定義してやればよい

e.g.
set theDate to current date
set theYearString to do shell script "date +%Y"
set (year of theDate) to theYearString
...

888:名称未設定
16/09/07 04:47:46.77 3MTRzdxL0.net
OS10.9以上なら、Rubyのdateオブジェクトで西暦和暦変換ができるみたいです
ただ、和暦はドット区切り、西暦はスラッシュ区切り固定のようなので、
入力する日付を自分でその形式に変換しておく必要あり
(AppleScript's text item delimiters とif文を組み合わせればできる)

というか、本題からズレてたらすいません…


--和暦→西暦変換(ドット区切り・H(平成)・S(昭和)・T(大正)・M(明治)対応)
set theDateStringJp to "S10.9.6"
set theRubyScript to "require 'date';puts Date.parse(\"" & theDateStringJp & "\").strftime(\"%Y/%m/%d\")"
set theDateString to do shell script "ruby -Ku -e " & quoted form of theRubyScript

--西暦→和暦変換(スラッシュ区切り・H(平成)・S(昭和)・T(大正)・M(明治)対応)
set theDateString to "1935/09/06"
set theRubyScript to "require 'date';puts Date.parse(\"" & theDateString & "\").jisx0301"
set theDateStringJp to do shell script "ruby -Ku -e " & quoted form of theRubyScript

889:名称未設定
16/09/07 08:09:40.71 3MTRzdxL0.net
>>816
set theDateString to "2016/9/6"
set theDate to date theDateString

set yearString to characters 1 thru 4 of theDateString as text
set (year of theDate) to yearString

log theDate

やっつけ仕事っぽいけど、
システムの設定が和暦だろうが西暦だろうが、
theDateStringの最初の4文字を切り出して
dateオブジェクト「theDate」のyearに代入しちゃえば、
西暦2016年(和暦表記だと平成28年)に上書きできますた

890:名称未設定
16/09/07 11:05:58.56 FhgBYBLX0.net
平成やHの文字が出てくると決めつけてるとすぐ使えなくなる可能性が…

891:名称未設定
16/09/07 11:31:39.64 ngYUIGtT0.net
>>816
結局最終的に何が得たいの? 日付を西暦にした文字列? 日付同士の計算がしたい?

どちらにせよ一旦和暦を西暦に変換しないとできないっぽいので、
正規表現の使えないASのみではちょいと面倒だと思う。

ちなみに10.6.8だと>>816のは和暦にすると動かないんだが。

892:名称未設定
16/09/07 11:41:37.76 CoRxCYwF


893:0.net



894:名称未設定
16/09/17 05:04:41.42 WAphUahl0.net
入力時点で表記を統一させるか、例外な表記は統一する関数でも書けよ

895:名称未設定
16/09/18 17:17:15.66 P6TC9ipg0.net
image eventsで適当な画像をpictで保存したいのですがerror 1708がでてうまくいきません.
どのようにしたらいいでしょうか??

set afile to choose file
set adesk to (path to desktop) as text
tell application "Image Events"
launch
set the_image to open afile
try
save the_image as PICT in (file (adesk & "a.pict"))
end try
close the_image
end tell

896:名称未設定
16/09/18 18:54:18.94 ZyunKvGT0.net
pictは扱えなさそうな感じ
代わりにsipsコマンドでやると Error: Unsupported output format com.apple.pict

897:名称未設定
16/09/18 22:05:15.44 RKOguUii0.net
標準のコマンドがダメなら brew install imagemagick して
convert コマンドを使う手もある
ImageMagick は PICT 形式に対応してるよ

ちなみに今時 PICT って何に使うんだい

898:名称未設定
16/09/19 22:57:57.88 9rn6DICs0.net
過去スレでiTunesのアートワークとして画像を差し込む方法が載っていたのでその通りにやってみました.
そこでは一度,画像データをpictに変換し,data of artwork に入れていました.

899:名称未設定
16/09/19 23:29:01.85 9rn6DICs0.net
お騒がせしましたiTunes10.2から仕様が変わっていたのですね,,,
tell application "iTunes" to set data of artwork 1 of theTrack to (read (file targetImageFile) as picture)
これでできそうですね.

900:名称未設定
16/09/20 01:57:42.90 0AeGId/70.net
そういうのは最初からやりたいことを全部言ったほうがいい
質問がズレてると回答もズレちまってお互い時間の無駄だ

901:名称未設定
16/09/24 22:35:47.84 ntiy9hIP4
(´・ω・`)アアアアア

902:名称未設定
16/11/08 18:08:26.81 iTLgand+0.net
automatorで、上のメニューバーにはあるけどショートカットコマンドが与えられてない項目のショートカットを作りたいのですが、
自動記録したものを走らせてもエラーが出て動きません。
どのようなApple script を書けばいいか教えてください。
(例えばChromeの「ズーム」をショートカットにしたい場合)

903:名称未設定
16/11/08 18:09:54.47 iTLgand+0.net
on run {input, parameters}
-- ズーム
set timeoutSeconds to 2.0
set uiScript to "click menu item 3 of menu 1 of menu bar item 9 of menu bar 1 of application process \"Chrome\""
my doWithTimeout(uiScript, timeoutSeconds)
return input
end run

on doWithTimeout(uiScript, timeoutSeconds)
set endDate to (current date) + timeoutSeconds
repeat
try
run script "tell application \"System Events\"
" & uiScript & "
end tell"
exit repeat
on error errorMessage
if ((current date) > endDate) then
error "Can not " & uiScript
end if
end try
end repeat
end doWithTimeout

記録したものはこんな感じです。

904:名称未設定
16/11/08 18:21:06.15 EWXVSqty0.net
>>834
キーボードショートカットを割り当てるのではだめなのか?
URLリンク(support.apple.com)

905:名称未設定
16/11/08 18:59:43.47 BsKEIaRN0.net
>>836で済むならいいけど書く場合

tell application id "com.apple.systemevents"
tell application "Google Chrome" to activate --これは呼び出し方によっては不要
tell process "Google Chrome"'s first menu bar's menu bar item "ウインドウ"'s menu "ウインドウ"'s menu item "ズーム" to click
end tell

906:名称未設定
16/11/18 11:32:35.49 t


907:GiTS7790.net



908:名称未設定
16/11/18 11:49:53.23 0sQ3zW0a0.net
いつの間にかiTunesでdisplay dialogとdisplay alertのcancel buttonが効かなくなってる

909:名称未設定
16/11/18 15:06:19.50 FWfCUeTi0.net
>>838
やべぇよやべぇよ……
ほんこれ >Another nail in the coffin of macOS being a tool for professionals.

910:名称未設定
16/11/18 21:18:06.86 GUceBYRw0.net
Rhapsody発表時にAppleScriptも廃止する予定とジョブズが言ったとたん
じゃぁもうMac使ってる意味ねーよ安いAT機買うからとプロ業界から総スカンをくらい
なんと思い直したというMac自動化の歴史も、彼なき後、遂に終焉を迎えるわけですな

911:名称未設定
16/11/21 20:23:02.65 7ymhH/7S0.net
Swiftインタプリタでなんとかしてくれるの?

912:名称未設定
16/11/21 20:28:14.32 EK10STwB0.net
SwiftScriptまだ~?

913:名称未設定
16/11/22 23:21:03.30 ICQ6tb5N0.net
相談です。
最近、iTunes用の以下のスクリプトで動画ファイルの種類を変更しようとするとパラメーターのエラーです、というエラーが出てしまいます。
なぜか、TV showへの変更はうまくいき、movieやmusic videoへの変更が失敗します。

tell application "iTunes"
--return (item 1 of selection)
set video kind of (item 1 of selection) to movie
end tell

914:名称未設定
16/11/23 03:04:10.30 enXikOrW0.net
home video/‌movie/‌music video/‌TV show

どれに変えてもエラーにならなかった

915:名称未設定
16/11/23 12:49:43.28 WM8UhP380.net
ありがとうございます。
環境依存っぽいですね。

916:名称未設定
16/11/23 13:51:26.26 tAdkg8UK0.net
バージョンは? コンパイルしなおしたか? できるファイルもあるのか? 何かの tell ブロックに入れ子になってたりして用語衝突してないか?

917:名称未設定
16/11/23 17:09:26.13 sz1Dt2/Q0.net
Mac OS X 10.9.5
AppleScript 2.3.2
iTunes 12.4.3.1
でした。
いくつかのファイルを試しましたが、やはりTV showへの変更しかできませんでした。
他はエラーが返ります。
「iTunesでエラーが起きました:パラメーターのエラーです」
入れ子ではなく、スクリプトエディタでそのまま実行してもエラーになります。

918:名称未設定
16/11/23 18:37:33.33 60Z7tgsL0.net
iTunes上で直接変更はできるの?

919:名称未設定
16/11/23 20:59:45.08 sz1Dt2/Q0.net
はい、可能です。
今は手動でやってます。

920:名称未設定
16/11/24 04:46:23.72 QhkCG5JO0.net
気になる話があった
URLリンク(dougscripts.com)
Set Video Kind of Selected v5.2
WARNING: a possible bug in iTunes 12.4.1 and later prevents this script from working. Until Apple confirms and/or addresses this issue, I do not recommend using this script.

921:名称未設定
16/11/24 15:10:30.69 ZN/5pbPK0.net
Doug氏がそう言うんならそうなんだろうな

922:名称未設定
16/11/24 16:39:48.30 5Qm7ZEkl0.net
原因不明で回避方法もないということでしょうか。
残念。

923:名称未設定
16/11/24 17:14:49.09 ZN/5pbPK0.net
不明というか、iTunes側のバグって話かと

924:名称未設定
16/11/25 14:24:33.44 muoB3U8+0.net
os 10.1


925:1です デフォルトプリンタとデフォルトの用紙の設定をアップルスクリプトから制御したいのですが、プリンター設定ユーティリティがなくなってしまい、以前使っていたスクリプトが動かなくなりました System Eventsからorg.cups.PrintingPrefs.plistを直接いじればいけるかなと思ったのですが、エラーになって設定できません 何かいい方法はありませんでしょうか



926:847
16/11/25 17:43:59.31 muoB3U8+0.net
shell script でデフォルトのプリンターの変更ができるものを検索して見つけました
ですがデフォルト用紙は見つけられませんでした…

927:名称未設定
16/11/26 04:23:35.33 VhEWogO40.net
defaults write org.cups.PrintingPrefs DefaultPaperID "iso-a4"
とかで行けるっぽいよ
URLリンク(themacadmin.com)

10.12でも行けた

928:847
16/11/28 09:10:20.17 WITPAloA0.net
>>857
大変有益な情報ありがとうございました
シェルスクリプトは不慣れで検索の仕方もわからないレベルだったので助かりました

929:名称未設定
16/12/02 22:24:00.84 iTWJ/avd0.net
最近気付いたこと。
InDesignの変形でのabsoluteは実態はrelativeだったこと。
真っ青になってこっそり書き換え中。

930:名称未設定
16/12/19 14:39:19.62 dcVzYH3U0.net
たしかに

931:名称未設定
17/01/20 17:10:03.17 52ZJAtjC0.net
あけおめ

932:名称未設定
17/01/20 19:02:55.98 MR83okhh0.net
良いお年を~

933:名称未設定
17/01/22 15:50:43.50 0xkJ26tQ0.net
質問です
コトノコという辞書アプリで「単語」という言葉を調べたいとき、

tell application "kotonoko"
activate
set searchword to "単語"
end tell

ではうまくいかないです
set searchword to ""
じゃなくて、なにか別なのあるのでしょうか?
わかるかたいたら教えてください

934:名称未設定
17/01/22 16:11:31.04 td2KFX3W0.net
用語説明を開いて調べた方がいいんじゃないの

935:名称未設定
17/01/23 00:15:44.76 WyTEuYSu0.net
>>863
そもそもどうしてその文でいけると思ったのかわからない
俺の知ってるコトノコ.appはスクリプト対応してない気がするが
きっと俺の知らないバージョンか同名アプリなんだろうな~

936:名称未設定
17/01/23 10:23:28.37 ujaelEHZ0.net
頭悪すぎるよなw
俺も知らないバージョンか同名アプリなんだろうw

937:名称未設定
17/01/24 00:06:20.84 vmSJnrn50.net
GUI scriptingくらいヒントとして教えてやれよ。

938:名称未設定
17/01/24 10:04:39.57 aDsRhBS90.net
じゃあお前最後まで面倒見てやれよ

939:名称未設定
17/01/24 10:33:18.85 t9dG5KJK0.net
はい。(´・ω・`)

940:名称未設定
17/01/24 10:37:00.51 O0Kd4L+D0.net
PreFab Player使えばいいんじゃね?

941:名称未設定
17/01/24 12:06:36.92 75F0HRla0.net
ふと思い出したけどQuickeysってどうなってる?

942:sage
17/01/24 13:15:59.08 Dbp78suS0.net
AppleScriptをJavascriptに変換するソフトはありますか?
100%変換しなくても80%程度変換してもらえれば
後の手作業が楽になるので。

943:名称未設定
17/01/29 11:29:22.45 WKy5QlLf0.net
助言を下さい。
10.11まで動かせていたgui script applicationを、10.12に対応させられず苦労しています。
developerIDは持ってないので、自分環境専用です。調べた範囲ではこれ以上は見つかりませんでした。

これまで試したこと
1.
xattr -cr guiスクリプト名.app
2.
chmod a-w guiスクリプト名.app/Contents/Resources/Scripts/main.scpt
3.
codesign -s - -i com.apple.ScriptEditor.id.


944:guiスクリプト名 -f guiスクリプト名.app 4. セキュリティとプライバシー/プライバシー/アクセシビリティにて、guiスクリプト名.appを追加 これで、実行すると System Eventsでエラーが起きました:guiスクリプト名には補助アクセスは許可されません。(-1719) となります。



945:名称未設定
17/01/29 13:31:25.37 ivFV2MIT0.net
1.~3.って必要なの?

アプリで保存して4.だけでいけるけど
実行専用で保存しても4.だけ

946:名称未設定
17/01/29 16:38:25.66 4Zu53BEN0.net
>>873
*まず、これまでとは異なるアプリケーションと認識されるように新規書類作成⇒ソースコピペで別名の.appを作成します
*次に1~4の操作は*せずに*.appを起動します。「許可されません」ダイアログが出るでしょう
*その結果シス環アクセシビリティのリストにチェックが外れた状態で新しい.appが載ったはず
*そのチェックを入れてシス環を閉じ、もう一度.appを起動

これでどうかな?

947:名称未設定
17/01/29 19:16:38.24 WKy5QlLf0.net
>874-875
動きました。ありがとうございました。
以前のOSXの時にこの手のcodesign関連手順を踏まないと動かないと記憶していたんですが、自分で使う分にはいらなかったんですね。

大体OSアップグレードのたびにこの手の試行錯誤してたのがバカみたい...

948:名称未設定
17/02/04 11:24:47.26 ZlWYx5rz0.net
どうやってみんなはAppleScript覚えたの?

949:名称未設定
17/02/04 18:12:07.11 8/+Y2Wh60.net
テキストエディタのマクロを改造することから始めて、
ファイルドロップでファイル名を変える、とかの
Finder操作系に徐々に手を広げていった感じ

もうネットがある時代だったから、
文法とかはググって覚えた

最近は、AppleScriptの処理の遅さや
機能の貧弱さが気になりだして、
ダイアログなんかのインターフェースだけ
AppleScriptで作って、中身はだいたいRubyに投げるように
なってきちゃった

950:名称未設定
17/02/05 01:01:57.57 Tos4a9S+0.net
ネットのない時代は大変だった。
AppleScript道入門という本にAppleScript日本語版がバンドルされていて、それを自分で組み込んで使って勉強した。
インターネットはまだ日本に上陸していなかった。
ひたすらトライアンドエラーだった。

951:名称未設定
17/02/05 02:19:53.02 ZaqFZUa40.net
TAO of AppleScript、原書で買ったなあ
ミニミニリファレンスは開きすぎて分解しちゃった

952:名称未設定
17/02/05 04:14:23.45 b5zj9RT50.net
月刊MAC POWERだったかな。AppleScript講座の連載やってたな。

953:869
17/02/05 08:14:26.18 TRL4BVZg0.net
すげーーなおっさん達
マジそうゆうとこ見習わないと
楽に取得する方法なんてなかった…1から勉強します

954:名称未設定
17/02/05 11:03:52.13 W7vZBcxp0.net
俺はまだおっさんじゃないけど
>>1に挙がってる日本語サイトだけでもそこそこ組めるようになるよ
基本がわかったら後はやりたいことをどうやって実現するか
目的ごとに地道に調べるだけでしょ。その過程で英語情報の使い方も自ずとわかってくる

955:名称未設定
17/02/05 11:28:43.92 b6zU4uPZ0.net
>>882
AppleScriptって、頑張って勉強して覚えるタイプの
言語じゃない気がする

「毎回やってるこの処理、自動化できたら楽なのに!」
って状況があって、その処理がAppleScriptでできないかググる
→それっぽいサンプルが見つかる

大抵、サンプルは自分のやりたいこととちょっと違うので、
いくつかのサンプルの使えそうな部分を組み合わせ�


956:ト動くまで頑張る 「できたっ! なにこれ、超便利! じゃあ、あの処理も自動化できるかも!」 って、なにもわざわざAppleScriptでやらなくても…という細かい処理まで スクリプトを組んでやるようになる →気がつくと基本的な文法を覚えてて、簡単な処理なら自分で書けるように 自分はこんな感じだった うまく動かなくて試行錯誤してる間はそれなりにつらいけれども、 やりたいことができた時の喜びで吹っ飛ぶので、苦労した記憶は残らない



957:名称未設定
17/02/05 11:34:51.80 W7vZBcxp0.net
そうだよね。有名言語は言語を知ってること自体に価値があるけどASはそうじゃない
もっと身近で、対症療法的に使いながら覚えていくものだよね

958:名称未設定
17/02/05 22:51:55.72 Xb7bVEd50.net
むかしは、AppleScript対応アプリケーションが多かったからマウス操作の自動記録でスラスラとScriptが自動生成されてたから、それでファインダ操作やアプリケーション内の操作のサンプルが取れて
スクリプトの最適化とか改造で覚えやすかったんだけどね

Excel立ち上げて、セル操作して数式入力
それらをAppleScriptでやれたから楽だった

それが今では自動記録がうまく動いてくれない


Autometerも中身はAppleScriptみたいなものなんでしょ?

959:名称未設定
17/02/06 07:19:12.26 OwbhFoed0.net
今も自動記録は使える気がするが、具体的に何ができなくなってる?

960:名称未設定
17/02/07 01:05:15.09 5n8Mf6Us0.net
>>887
むむむ
ファイダー操作がちゃんと記録されてる・・
QuickTimeは未対応なのか

961:名称未設定
17/02/11 16:21:21.54 Ldl/3u/M0.net
>>888
QuickTimeは7と共に逝ったよ

962:名称未設定
17/02/18 22:48:19.52 G4+IScJH0.net
初めまして。クリップボードを拡張するソフトを作りたいと考えました。
今の所これでキーを打てるのはわかりました。
tell application "System Events"
keystroke down command
keystroke up command
end tell
が、押されている装飾キーを取得するにはどうすればいいのでしょうか?
お助けください。

963:名称未設定
17/02/18 23:47:12.63 qHdDG3B70.net
>押されている修飾キーを取得
URLリンク(discussionsjapan.apple.com)


修飾キーを押した状態で何か入力したいのなら
keystroke “c” using command down
でコピーとか
keystroke “ac” using command down
で全てを選択してコピーとか

keystroke じゃなくて key codeってのも使える。
key code(8) using command down
key codeは文字以外のキーも使える。
コード番号はmac key codeとかでググれば出てくるよ。

修飾キーが複数組み合わさる場合は
using {command down, shift down}
のようにすればOK
(keystrokeは大文字で書いてshiftキー押した状態の入力にすることも可能)

964:名称未設定
17/02/19 02:35:48.35 aQXqCxKb0?2BP(1000)
sssp://img.2ch.sc/ico/af2.gif
詳しくありがとうございます!
ですが教えてもらったurlのrubyが動かずで・・
具体的にはcapsロックがオンのとき、
数字キーでペースト、command+数字キーでコピーするソフトを考えていたのですがAppleScriptで作るのは難しいでしょうか・・?
親切に漬け込んでいてすみません

965:名称未設定
17/02/19 09:09:13.32 JTN2GxVk0.net
サンプルのコードとかでhogeってのを見るけど何故にhoge使うの?⚪︎とか△ではあかんの?
アホな質問でごめん

966:名称未設定
17/02/19 10:59:15.00 AMvGzm3X0.net
色々初めて


967:っぽそうなのにそんなあっさり出来たら苦労しないよ じっくり漬け込まないと、時間かけて



968:名称未設定
17/02/19 19:05:55.34 h2sgOzYO0.net
>>893
ものごとをホゲホゲと表現するのがカッコいいと思ったダセークソオタクが始めやがって
無反省にそれを受け入れ、さらに広めたバカなクソオタクどもがうじゃうじゃ居たからなんだぜ

初めて見るやつにとっては、ホゲとかフーバーとか意味不明だしバカジャネーノ?の一言だよな
ひねりもなにもないけど、変数123とか定数ABCとか名付ければ、第三者にも分かりやすいのにな

あんさんの言うとおり、マルでもサンカクでも良いんだぜ!
今もそうなのかはわからんけど、昔のアンク氏のHTML辞典などではそういう表現をしていて、私としては好感が持てたな

969:名称未設定
17/02/19 20:56:09.70 JTN2GxVk0.net
へぇーそういう歴史があったのか
hogeってなにかの頭文字かと思ってたけど
1人が言い始めたのが流行っただけだったんやww

970:名称未設定
17/02/19 22:45:45.76 PMUXWJPh0.net
>>892
待機していて任意のキーで発動するのはApplescriptでは難しいな。

971:名称未設定
17/02/20 00:13:42.81 47moyOp40.net
>>896
まさかとは思うけど
本気にすんなよ

972:名称未設定
17/02/21 00:32:39.46 gphoZadF0.net
appkitで装飾キーは取れたけど数字キーが取れない・・
>>896
こうゆうのは何で書かれているんですか?

973:名称未設定
17/02/21 09:22:11.98 MlMOQbWh0.net
>>895 そんなのが前提なく出てくる本とかあるもんな。

974:名称未設定
17/02/21 16:15:18.04 /M36k0iH0.net
俺もhogeやfoobar嫌い
無駄に業界用語とかビジネス用語多用する人と同じ方向性を感じる

975:名称未設定
17/02/21 17:08:28.68 JRq74LQc0.net
業界用語なんて大げさな
それ使っておけばいいというのが楽だから皆使ってるんじゃないの

976:名称未設定
17/02/21 17:12:23.99 bG7S9Xkp0.net
hageのほうがいい

977:名称未設定
17/02/21 17:13:47.34 jfmoKTXy0.net
ほにゃららを多用するよりまし

978:名称未設定
17/02/21 18:16:05.67 hlKC2Ktr0.net
>>904
あー、私もホニャララ大嫌い
世界一受けたい授業というテレビ番組を観ていると、ホニャララが多すぎてげんなりする

不明確、不特定なものごとをどのように表現すべきかは悩ましいところだよな
「なにがし」以外にも分かりやすい言葉があれば良いな

979:名称未設定
17/02/21 19:27:32.79 Rvqi1a1W0.net
ほにゃららって、~を読んでいるだけだよね。
目くじら立てるほどのことかなあ?
AppleScriptでは使わないけどね。
hogeとかは予約語とかぶる心配がないから都合が良いんだろう。
文字数が多いので多用すると面倒そう。

980:名称未設定
17/02/21 19:58:02.09 qf3U6U1S0.net
>>906
まぁ言われてみれば、そこまで嫌うほどのものでなもなかったね
ごめんね(*´・ω・)(・ω・`*)

私としてはhogeよりもpiyoのほうが可愛くて好きだけど、右手の小指と中指を伸ばして入力するのがめんどくさいのが難点かな

981:名称未設定
17/02/21 21:21:22.33 c07pXrAY0.net
ほめばげ

982:名称未設定
17/02/21 23:16:54.00 4kOCPwAT0.net
俺はhogeよりもhage派

983:名称未設定
17/02/23 07:27:01.55 f78VjTtz0.net
打ちやすそうでいいね。
でも、エラーが出た時に、ハゲが定義されていませんとか表示されると想像



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