X



AppleScript アップルスクリプト 質問、発表 6
■ このスレッドは過去ログ倉庫に格納されています
0001名称未設定
垢版 |
2013/12/21(土) 21:50:45.07ID:1PJJFexL0
質問、発表どっちでもスレ。

■注意
安直なスクリプト作成依頼、丸投げ、「こういうの作ってください!」はお断り。
わからない点、エラーが解決できない点についてはスクリプト片を添えて質問すること。
OSバージョンも忘れずに。

■参考
AppleScript Language Guide
https://developer.apple.com/library/mac/documentation/AppleScript/Conceptual/AppleScriptLangGuide/
TN2065: do shell script
https://developer.apple.com/library/mac/technotes/tn2065/
AppleScript: The Language of Automation
http://www.macosxautomation.com/applescript/
MacWiki - AppleScript
http://macwiki.sourceforge.jp/wiki/index.php/AppleScript
鳶嶋工房 / AppleScript
http://tonbi.jp/AppleScript/
AS Hole(AppleScriptの穴)
http://piyocast.com/as/
■過去スレ
1 http://pc11.2ch.net/test/read.cgi/mac/1174045850/
2 http://pc11.2ch.net/test/read.cgi/mac/1197443062/
3 http://pc11.2ch.net/test/read.cgi/mac/1223026902/
4 http://anago.2ch.net/test/read.cgi/mac/1256127156/
5 http://anago.2ch.net/test/read.cgi/mac/1330350325/
0206名称未設定
垢版 |
2014/05/18(日) 07:28:20.66ID:SZDwTVIE0
GUIスクリプトでいけんじゃね?
0207名称未設定
垢版 |
2014/05/18(日) 12:23:40.65ID:1SamfBSc0
あ〜なるほど
そんなこともできるんですね
元座標を取得して〜とかややこしいこと考えてました
ありがとうございます
0208名称未設定
垢版 |
2014/05/21(水) 08:25:30.47ID:gZlbtxpxi
AppleScriptエディタの背景は変えれないのでしょうか?
黒にしたいんですけど
0209名称未設定
垢版 |
2014/05/29(木) 19:59:33.42ID:8Urv7sLM0
教えてください
先日10.8.5から10.9.3に上げたところ、10.8.5のAppleScript EditorのCocoa-AppleScript Appletテンプレから作ったアプリがクラッシュするようになってしまいました
アプリは単純で、通知センターに通知を出す、通知がクリックされたら再処理する(a)、スリープから復帰したら再処理する(b)、程度のものです
クラッシュログを見ると、(a)や(b)用に設定したデリゲート、オブザーバのメソッド呼び出しで、メソッドが見つからないと言っているようです
とりあえず10.9.3のAppleScript Editorで作り直してみましたが変わりません

前・現スレを追ったりググったり、この一件 https://discussionsjapan.apple.com/thread/10139456 は見つかりましたが、解決していないようです(クラッシュログが似ているので同様の原因と思います)
10.9ではこう直す必要があるなど、お分かりでしたら教えてください

(続く)
0210名称未設定
垢版 |
2014/05/29(木) 20:00:20.21ID:8Urv7sLM0
再現スクリプト
on run
my setWake()
my putNotification()
end run
on wake:aNotification
NSLog("%@", "wake_")
end wake:
on setWake()
tell my NSWorkspace's sharedWorkspace()'s notificationCenter()
addObserver_selector_name_object_(me, "wake:", "NSWorkspaceDidWakeNotification", missing value)
end tell
end setWake
on putNotification()
set uNotification to my NSUserNotification's alloc()'s init()
tell uNotification
setTitle_("Title")
setSubtitle_("Subtitle")
end tell
tell my NSUserNotificationCenter's defaultUserNotificationCenter()
setDelegate_(me)
deliverNotification_(uNotification)
end tell
end putNotification
on userNotificationCenter:aCenter didActivateNotification:aNotification
NSLog("%@", "activate")
end userNotificationCenter:didActivateNotification:

(続く)
0211名称未設定
垢版 |
2014/05/29(木) 20:01:12.23ID:8Urv7sLM0
(a)のクラッシュログの抜粋(クラッシュは通知が出てすぐ起きる)
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000018

Application Specific Information:
objc_msgSend() selector name: respondsToSelector:

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libobjc.A.dylib 0x00007fff91b30097 objc_msgSend + 23
1 com.apple.Foundation 0x00007fff90465b1c -[_NSConcreteUserNotificationCenter _sendDelegateMessage:sendToAppDelegate:withNotificationFromMessage:] + 52
2 com.apple.Foundation 0x00007fff904665ca __54-[_NSConcreteUserNotificationCenter _serverConnection]_block_invoke_2 + 199

(b)のクラッシュログの抜粋((a)を設定しないようにし、スリープから復帰したとき)
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000018

Application Specific Information:
objc_msgSend() selector name: wake:

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libobjc.A.dylib 0x00007fff91b30097 objc_msgSend + 23
1 com.apple.CoreFoundation 0x00007fff8d61fe0c __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
2 com.apple.CoreFoundation 0x00007fff8d5138dd _CFXNotificationPost + 2893
3 com.apple.Foundation 0x00007fff9020c7ba -[NSNotificationCenter postNotificationName:object:userInfo:] + 68
4 com.apple.AppKit 0x00007fff94bb949c powerSubsystemCallback + 125

(以上)
0212名称未設定
垢版 |
2014/05/30(金) 16:41:48.89ID:w2GSLBfm0
上記で質問した者ですが、とりあえず解決できたっぽいです

参照ページ ttp://macscripter.net/viewtopic.php?id=42087
参照スクリプト ttp://macosxautomation.com/lion/applescript.html の Applet with Progress Window

再現スクリプトを下記のように分割し、修正します
main.scptの内容
on run
set mySubScpt to my subScpt's alloc()'s init()
tell mySubScpt
setWake()
putNotification()
end tell
end run
(続く)
0213名称未設定
垢版 |
2014/05/30(金) 16:42:24.82ID:w2GSLBfm0
sub.scptの内容(CocoaAppletAppDelegate.scptと同じ階層に置きます)
script subScpt
on wake:aNotification
NSLog("%@", "wake_")
end wake:
on setWake()
tell my NSWorkspace's sharedWorkspace()'s notificationCenter()
addObserver_selector_name_object_(me, "wake:", "NSWorkspaceDidWakeNotification", missing value)
end tell
end setWake
on putNotification()
set uNotification to my NSUserNotification's alloc()'s init()
tell uNotification
setTitle_("Title")
setSubtitle_("Subtitle")
end tell
tell my NSUserNotificationCenter's defaultUserNotificationCenter()
setDelegate_(me)
deliverNotification_(uNotification)
end tell
end putNotification
on userNotificationCenter:aCenter didActivateNotification:aNotification
NSLog("%@", "activate")
end userNotificationCenter:didActivateNotification:
on NSLog(fmg, msg)
do shell script "syslog -s -l Notice " & msg
end NSLog
end script

(以上)
0214名称未設定
垢版 |
2014/06/07(土) 06:47:40.02ID:K4QUfk3I0
なんかさ、お手製のASOCアプリで、テキストファイル(具体的にはHTMLファイル)を
動的に作成しているんだけど、おなじみのカタカナ濁点問題でsqliteからデータがヒット
しなかったため、do shell script iconvで文字コード変換する仕組みを試したら、
その後、そのマシンでは全部文字化け???????とかするようになってしまった。
元に戻したつもりだが、それでも文字化けしっぱなし。他のマシンで動かすと
普通に表示される。これ、何がおかしくなってしまったのだろう? 皆目検討がつかない。
0215名称未設定
垢版 |
2014/06/07(土) 16:24:00.67ID:zIxkH1WO0
>>214
>>そのマシンでは全部文字化け???????とかするようになってしまった。
なにが文字化けしたのか、テキストファイルなのか、ブラウザなのか、UIとかテキストが使われている所すべてなのか?

作成したHTMLの文字コードは、確認した?

カタカナ濁点はis inとか使って、どうにかしたような気がする
0216名称未設定
垢版 |
2014/06/10(火) 14:31:45.38ID:TLtyEFvp0
OSX 10.10にはJavaScriptのOSA componentが追加される。
JavaScript for Automation Release Notes
https://developer.apple.com/library/prerelease/mac/releasenotes/InterapplicationCommunication/RN-JavaScriptForAutomation/index.html
これってScript Debuggerを出してるLate Night Softwareが以前配布してたJavaScript
OSAの焼き直しだね。Objective-C Bridge機能は新しいけど。
以前はAppleScript以外にもOSA componentはいくつもあったのに廃れてしまったけど、
これを機にまた色々出ると良いね。
0217名称未設定
垢版 |
2014/06/11(水) 22:21:00.84ID:WohYruh00
SwiftってASOCに影響あるんだろうか?
0219名称未設定
垢版 |
2014/06/13(金) 00:37:42.31ID:5iWW/8Q60
影響は無いだろう。ただ、Swift Script Editorが提供されiOSで動く事に・・
0220名称未設定
垢版 |
2014/06/13(金) 01:29:06.16ID:BH+9QlRy0
個人的にはVB VCとかObj-Cとか扱えないからSwiftは助かるわ。
なんかビジュアル的にどうのこうのするのは苦手。

プログラムは手打ちだろjk
0221名称未設定
垢版 |
2014/06/13(金) 23:16:46.98ID:7WuVEZau0
質問です
OSは10.9で、実行環境はAutomatorによるサービス内の「AppleScriptを実行する」です。

以下のようなスクリプトで、選択したテキストをSafariで開いたページ(hoge)のテキストフィールドに入力しようとしています。
しかし、テキストに改行が含まれているとうまくいきません。解決法を教えてください。

on run {input, parameters}
tell application "Safari"
make new document with properties {URL:"hoge"}
(省略)
do JavaScript "document.getElementsByName('text')[0].value = '" & input & "'" in document 1
end tell
return input
0222名称未設定
垢版 |
2014/06/14(土) 08:54:27.08ID:BqgujY2d0
>>221
文字列が途中で分断(改行)されるから、JavaScript文法エラーになるんじゃね
改行毎の文字列に分けてJavascriptで結合するとか、URLエスケープとかで1行にしてJavascriptで戻すとかかなあ

set urlEncodedInput do shell script "/usr/bin/php -r 'echo trim(urlencode(" & "¥"" & quoted form of input & "" & "¥"));'"
do JavaScript "document.getElementsByName('text')[0].value = decodeURIComponent( '" & urlEncodedInput & "');" in document 1
なんて
0223名称未設定
垢版 |
2014/06/14(土) 18:25:41.63ID:6HYvVvD80
>>220
そういう意味合いではObj-Cと大差無いよーな?
0224名称未設定
垢版 |
2014/06/14(土) 20:01:40.28ID:ZFqWjo7C0
>>223
多分IBのbindingとかのこと言ってるんだろうけど、扱えないって言ってるから、そんな言えないけどさ
全部コードで出来るのにな。てかswiftもbindingって意味ならマウスでドラッグして線繋ぐ所は、同じなのに...
0225名称未設定
垢版 |
2014/06/30(月) 00:54:26.49ID:IeiIh5C50
特定のデスクトップを指定して、ウィンドウを再配置することは可能でしょうか?

デスクトップというのは、トラックパッドを3本指か4本指左右スワイプできりかえるものです。

Macbook Air を外部ディスプレイにつないだとき、
Air 本体のディスプレイのデスクトップ1 にクローム、
Air 本体のディスプレイのデスクトップ2にファインダー2つ、
外部ディスプレイのデスクトップ3 にテキストエディタ
という風に適切なウィンドウリサイズで再配置したいのです。
0226名称未設定
垢版 |
2014/07/03(木) 11:46:09.68ID:9XALmAAL0
何もしないアプリケーションをデスクトップの数だけ作って
Dockで各デスクトップに割り当てておき
それを実行した後で目的のアプリで新規ウィンドウを開けばいいんじゃないでしょうか
0227名称未設定
垢版 |
2014/07/03(木) 12:57:14.43ID:Aqyg/V0F0
デスクトップの切り替えを試行(キーボードショートカットで ^1 ^2 が定義されているとき)

tell application "System Events"
delay 1
key code 19 using control down -- switch to desktop 2
delay 1
key code 18 using control down -- switch to desktop 1
end tell
0228名称未設定
垢版 |
2014/07/03(木) 16:31:10.31ID:AqXSO5JN0
>>227
目からうろこです。
そのデスクトップ切り替えのショートカットあるの忘れてました。
スワイプでデスクトップ切り替えてたので、環境設定でこの切替ショートカットのチェックマーク外してました。
0229名称未設定
垢版 |
2014/07/05(土) 12:12:19.68ID:YyTe2e2J0
ASは幸せでいいなあ。スクリプト書いてて楽しいもの。
0230名称未設定
垢版 |
2014/07/15(火) 03:19:28.79ID:wYxshpyA0
選択範囲のテキストを (* *) で囲みたいのですがうまく行きません。

tell application "System Events"

set oriClip to the clipboard

keystroke "x" using {command down}
set the clipboard to "(*" & (the clipboard) & "*)"

log (the clipboard)

delay 0.5
keystroke "v" using {command down}

set the clipboard to oriClip

end tell
0231名称未設定
垢版 |
2014/07/15(火) 04:13:55.22ID:jjZPgGYM0
直接の答えじゃないが
AppleScriptエディタで右クリックで出てくるComment Tags
(実体は /Library/Scripts/Script Editor Scripts/Comment Tags.scpt )
で出来るよ
0232名称未設定
垢版 |
2014/07/15(火) 05:17:17.81ID:MpU9ZduJ0
--これでいいのかな? 実際にはペーストしたいアプリを最前面に出したりしないとダメだろうけど…

tell application "System Events"

set oriClip to the clipboard

keystroke "x" using {command down}

set copiedText to (the clipboard)
set the clipboard to "(*" & copiedText & "*)"

log (the clipboard)

delay 0.5
keystroke "v" using {command down}

set the clipboard to oriClip

end tell
0233名称未設定
垢版 |
2014/07/15(火) 09:36:24.47ID:GUZrA3CI0
Automatorでサービス、選択したテキストを入力にして

on run {input}
set input to {"(*" & input & "*)"} as text
return input
end run

こういうのを登録して使ってる。
0234名称未設定
垢版 |
2014/07/15(火) 14:07:44.75ID:gBz1a97Zi
何でか知らんが set the clipboard した後に keystroke でペーストすると更新前の内容
になっちまうけど、
run script か do shell script で迂回してやればいけそう
あと keystroke してから実際にカットorペーストされるまで多少タイムラグがあるみたいなんで、次の処理が早すぎると上手くいかない

なのでこんなんとか

set oriClip to the clipboard
tell application "System Events"
keystroke "c" using command down
do shell script "printf '(*%s*)' $(pbpaste) | pbcopy"
keystroke "v" using command down
end tell
delay 0.5
set the clipboard to oriClip

環境によっては do shell script の前にも delay 入れんとダメかも
カット"x"かコピー"c"かはお好みで
0235名称未設定
垢版 |
2014/07/15(火) 14:24:08.42ID:gBz1a97Zi
スクリプトエディタ限定ならこっちの方が早くて確実

tell application "AppleScript Editor"
tell selection of front document
set contents to "(*" & contents & "*)"
end tell
end tell
0236名称未設定
垢版 |
2014/07/15(火) 21:26:11.16ID:wYxshpyA0
/* >>230 です。
コメント、ありがとうございます。
こんなにいっぱいコメントつくとは思いませんでした。
*/
0237名称未設定
垢版 |
2014/07/15(火) 21:36:14.73ID:UTRb/ZIa0
--困ったらまた来んしゃい
0238名称未設定
垢版 |
2014/07/16(水) 01:50:25.47ID:dEYdlhmW0
(*
そえばapplescriptobjc用にそんなやつ作ったな
xcode上でまとめてコメントにしたり解除したりするのが面倒くて
最初はサービスでやってた気がする、テキスト選択して右クリックで
コメントだったらコメントタグ抜いて、違ったらコメントタグ挿入してたわ

スクリプトエディタなら標準で選択テキストをコメントにするやつ入ってたから、それ参考にした気がする
*)
0239名称未設定
垢版 |
2014/08/16(土) 05:41:06.92ID:998pTkUY0
スクリプト作れもしない奴に
「このスクリプト、壊れてるね」
と言われた。ちょっと処理に時間がかかるだけなんだけど、
それじゃあ手作業でやってくれ、とは言えず。
時間がかかる処理してるときに処理してるのをわかるように
するにはどうすりゃいいんだろう。
プログレスバーなんて出せるんだっけ?
0241名称未設定
垢版 |
2014/08/16(土) 08:19:41.01ID:koeiqCLv0
>>240
へえーこんなのがあったんだ
試してみたがおもしろいw
ブラウザ常に立ち上げてない自分にとっては実用的じゃないけどいいね
>>239
自分の場合はよくgrowl通知を使ってる
ふだんは処理開始と処理終了でnotice入れる
時間かかるような処理なら上のプログレスバーの人と同じように
処理開始したファイル名などで通知している
最近まで10.6だったので通知センターへの移行はまだだが
たぶん通知センターでも同じことできるんじゃないかな
0242名称未設定
垢版 |
2014/08/21(木) 10:29:09.55ID:8GufB5J50
通知センターに/////な感じでバー作って無理やり表示してる。
ただ処理が早いと通知が出ないので、前回表示したときから一定時間経ってたら
表示する、みたいな処理入れてる。
0243名称未設定
垢版 |
2014/08/21(木) 16:14:49.78ID:qhPq6JfD0
全くわからないんで教えてほしいんですが、
画面解像度を変更するAppleScriptを教えてほしいのですが、どなたかコードを教えていただけませんか?

最終的に使い方はAutomatarのアプリケーションにして必要があればアプリをダブルクリックして瞬時に変更したいんです。
0244名称未設定
垢版 |
2014/08/21(木) 16:19:28.01ID:eHJIQPJB0
>>239
ProgressBar表示するappletとかOS9時代からあるけど、入れても結局ウザくて使わないな。
自分の用途ではscriptの終了や経過知りたい場合は音で十分。
do shell script "afplay /System/Library/Sounds/Hero.aiff"
を最後に置いたり、音声で知らせたりする。
repeat with i from 10 to 90 by 10
  say quote & i & "%" & quote
end repeat
say "done!"
0246名称未設定
垢版 |
2014/08/21(木) 18:38:10.22ID:87bgOWlk0
>>243
途中まで
tell application "System Preferences"
activate
set current pane to pane "com.apple.preference.displays"
end tell
tell application "System Events"
tell process "System Preferences"
tell window 1
tell tab group 1
click radio button "Display"
tell radio group 1
click radio button "Scaled"
end tell
tell scroll area 1
tell table 1
select row 2
end tell
end tell
end tell
end tell
end tell
end tell
0247名称未設定
垢版 |
2014/08/21(木) 18:47:50.56ID:DwsP4u890
お二人さんレスどうも。

結構大変なコードが必要なんですね。
自分には難しいですがリンク先とレスいただいたコードを参考に駆使してみます。
ありがとうございました。大変助かりました。
0248名称未設定
垢版 |
2014/08/23(土) 11:48:55.71ID:kTGtbK/30
>>246
GUIスクリプトでなんでもできる! と思う反面、けっこうげんなりするよなー。
特にボタン、タブグループ、などGUI部品を指定するのが面倒。
名前ついてないような部品もあるみたいだし。button 1 とか button 2とか
0249名称未設定
垢版 |
2014/08/24(日) 00:54:03.50ID:Unbsppbb0
そんなあなたに Accessibility Inspector
0250名称未設定
垢版 |
2014/08/24(日) 09:47:45.49ID:QnD6/8Qu0
>>249
そりゃ知ってるよ。でも使いにくくない? ただの戯言だけど。
見るとげんなりするんだよな。もっと簡単にできる手法とか
手順化されてるといいんだけどなー。
操作したいGUIにポインター合わせてF7でロックして確認、だっけ?
見てるとうんざりするんだよね。で、そのGUIをスクリプトの中で
指定するのも>>246のようになってしまう。というより、そのスクリプトは
とてもわかり易く書いてあるけどしっかりGUI部品の構造理解してないと
書けないよね。普通は 
上省略

tell process "System Preferences"
click button "Display" of tab group 1 of window 1
select row 2 of scroll area 1 of window 1
end tell

下省略
みたいなスパゲッティになっちゃってどのGUI指定が間違ってるのか
わからなくなっちゃうんだよね。
1つずつ上位のGUI指定が間違ってないか確認しつつスクリプティングする
やり方が知りたいわ。どうやってデバッグするんだ?

達人の教えを乞いたい。
0251名称未設定
垢版 |
2014/08/24(日) 09:52:19.55ID:QnD6/8Qu0
あ、それから、adobeのソフトでよく見られるけど、最終的に
GUIスクリプティングできないカスタムしてあるGUIみたいなのも
あって、普通のGUIスクリプティングでは操作できないという結論
に達するのに時間がかかるときもある。ああいうので1日とか費やすと
けっこう凹むよね。
0252名称未設定
垢版 |
2014/08/24(日) 12:03:05.39ID:oxxKgxDS0
UI Browser がいいよ
お高いけど

$20 くらいでバーゲンしないかな、しないよなw
0253名称未設定
垢版 |
2014/08/25(月) 02:14:39.31ID:IjrpGSwEi
一連の流れってんならともかくボタン1個程度なら、
できるかできないかの判断に10分もかからんが

手抜きでInspectorとかAutomator使う事もあるけどそれはそれである意味面倒なので、
ベタにofかtell連ねて書いてるけどそんなもん
0254名称未設定
垢版 |
2014/08/25(月) 14:46:30.65ID:2dIEFPEX0
tell application "Pages"
-- 1. point:{100,100} な item は取り出す。 こちらは問題無く動作する。
(iWork items where position = {100, 100}) of page 1 of document 1

-- 2. x座標が 100 より大きい item を取り出す (そして delete したい)
 --  結果: error "Pages でエラーが起きました:item 1 of position のタイプを specifier に変換できません。
(iWork items where (item 1 of position) > 100) of page 1 of document 1

-- 3. x座標が 100 より大きく、かつ y座標が 100より大きい item を取り出す (そして delete したい)
end tell

where/whose句によるフィルターについて教えてください。
2や3のような事を実現するにはどのように書けばいいのでしょうか?
グルグル回さずに済む方法が知りたいです。
0255名称未設定
垢版 |
2014/08/26(火) 22:15:15.01ID:mMnMi0CT0
すまん適当だし合ってるかどうかも知りませんが
iWork items (whose ((item 1 of position) as integer) of it > 100) of page 1 of document 1
item 1 of position とか参照が参照のままでダメだから、型を適当に明示して変換すると
けっこう行けたり行けなかったりしないかなあ?

ただよくわかんないけど、whoseフィルター便利なんだけど、処理に時間かかることが
多いような気がする。一時期うなされたようにwhose whoseしていたけど、最近はあまり
使わないなあ。

ところで。10.9になって、またなんか変わった?10.8で動いてたスクリプトが動かなかった。
たいそうなことはしてないが、プレビューで内容を確認したあと、ファイル名を変更するスクリプト。
なんか仕事忙しくてチェックしなかったけど。
0256名称未設定
垢版 |
2014/08/30(土) 19:26:36.34ID:qt0Pg4Pu0
>>255 遅くなりましたが、ありがとうございます。
それでもうまくいきませんでした...。 括弧の付け方かえたり色々試してはみたのですが。
0257名称未設定
垢版 |
2014/09/08(月) 20:54:15.08ID:Cgy98ADX0
>>254
試してみようと思ったら、最新版は10.9じゃないとインストールできないんだな。変なアプリ。
0258名称未設定
垢版 |
2014/09/18(木) 17:16:48.30ID:FQ6tm29Ti
身の回りの面倒な作業をスクリプトで実行したいのだけどなにから勉強したらいいですか?プログラミングに興味あります
上に書かれてるようなことを理解できるようになるためにはどの言語を勉強したらいいのかすらわからない素人です
0259名称未設定
垢版 |
2014/09/18(木) 18:07:55.46ID:MVYqhU7J0
素人でもググることはできるよね
0260名称未設定
垢版 |
2014/09/18(木) 19:35:00.98ID:VMVk5YEG0
>>258
基本文法はググればわかるからそれでいいとして…

AppleScriptを使う上での基本的な流れは以下のような感じ。

・作業で使うアプリがAppleScriptに対応しているかを確認
・AppleScriptに対応しているなら、そのアプリがどんなAppleScript命令に
 対応しているかを確認
・AppleScriptに対応していないアプリだったら、AppleScriptのSystemEventという仕組みを勉強して無理やり動かす

AppleScriptに対応しているアプリなら、大抵はそのアプリのマニュアルに
AppleScriptの説明がある。
また、アプリをスクリプトエディタにドラッグすれば、対応している命令が確認可能。

Apple純正アプリ以外では、一部のメジャーなアプリと
テキストエディタくらいしかAppleScriptに対応してないんで、
過度な期待はしないほうがいいかも。

ちなみにFinderでのファイル操作なら、AppleScriptでかなりのことができると思う。

SystemEventはわりと万能だけど、
「ここで0.2秒待ってからこの階層にあるこのメニューをクリック」
なんて感じの記述を延々続けていく形になる。

スクリプト実行中にマウスで変なところクリックしたりすると
エラーになることもあるから、
SystemEventは少々不安定なもの、と考えておきましょう。
0261名称未設定
垢版 |
2014/09/18(木) 22:40:58.81ID:FQ6tm29Ti
自分のやりたいことが果たしてスクリプトで出来るのか不安になってきしたがググってググって試行錯誤しながらトライしてみます
0262名称未設定
垢版 |
2014/09/19(金) 05:28:54.19ID:lf06pHbV0
>>258
自分は素人で周りに教えてくれる人もいなかったけど、
以下で1年半くらいかかった。

レベル1 display dialog "hello"
レベル2 diaplay dialogとか使って、四則計算的な対話的プログラム
ここまではすぐ。

レベル3 Finderでのファイル名変換、ファイル名操作(if、repeatほか一般的処理)
プログラムの素養がなく、ここでつまづいた。3ヶ月くらいかかっただろうか。
特にファイル名変換で特定の文字列を検索置換するようなことをしたかったので
ひどくそこで時間がかかった。Applescriptの特殊なところ。正規表現が標準装備
じゃないし、検索、置換も一筋縄では行かず。

レベル4 Applescript対応のアプリを使った処理、テキストファイルの入出力
ここは徐々にだけど、けっこう簡単にできるようになった。

レベル5 Applescript非対応のアプリをGUIスクリプトで操作(SystemEvent)
ここもつまづいた、というか、自分がやりたい処理をできるようになるのに3ヶ月くらいかかったような。

レベル6 do shell script を使った世界
ここまで来ると単発処理は何でもできるようになる。世界が広がる。

レベル7 Xcode(ApplescriptStudio)でGUIのついたアプリ作成
レベル8 Xcodeを使ってApplescriptObjCでGUIのついたアプリ作成
レベル6までで培った技術をGUIアプリとして落としこむのはちまちまと。とにかくサンプルを
見つけることが大事。海外のサイトをよく見るようになった。

たぶん、だけど、あなたの考えていることはレベル5だと思うけど、まだ無理。
実際のところ、レベル3ができるようになるとけっこういろいろ便利なんだけどね。
使い始めはそれがわからない。レベル6習得あたりになると、なんでも
スクリプトで処理したくなる。気合入れるときはレベル8で。
0263名称未設定
垢版 |
2014/09/19(金) 14:13:26.59ID:iMNEhwZB0
>>262
その例で言うレベル8になると、
Applescriptの貧弱さに普通にobjcで書くようになるよ。
特にApplescriptでobjc関数とか呼び始めると、
メモリの管理がしにくくて(勝手に解放されちゃってクラッシュとか)、複数スレッドの処理をまともに動かすのが大変になるから
0264名称未設定
垢版 |
2014/09/19(金) 14:43:06.24ID:VynAABOT0
C系がどうしても敷居が高いとAppleScript専門になるのもしょうがないかなと
Objective-Cでの方がOSがそれで書かれているのだから素直にいろいろとできるけどね
0265名称未設定
垢版 |
2014/09/19(金) 17:46:57.37ID:vSEjXiLJi
>>262
うぉーーー!
まさに知りたかったビジョンだ!
周りに教えてくれる人がいないので漠然とできたらいいなぁぐらいの気持ちだったのが1年半でレベル8まで習得したって姿がみえるとすごい歩きやすい道に見えてきた
ありがとうございます!
0266名称未設定
垢版 |
2014/09/20(土) 00:37:50.41ID:1d3efwqb0
>>263->>264
レベル8の上がObjective-Cかな。レベル9。iPhone用アプリのテキストはたくさんあるけど、
なかなかmac用のテキスト少ないんだよなー。今、仕事多忙で勉強できてないけど。
PHPとかCSSとかSQLとかそっち方面にいっちゃってる。
HTML5とかもやらなあかんのかねぇorz
0267名称未設定
垢版 |
2014/09/20(土) 07:13:50.17ID:J1L8Sc170
正規表現等に関しては Satimage osax
http://www.satimage.fr/software/en/downloads/downloads_companion_osaxen.html
って機能拡張をインストールするといいよ

set theList to (find text "[+-]?\\d+(\\.\\d+)?" in "数字を足してね♥︎ -1, 0.01, +1, 2,..,99 " with regexp, all occurrences and string result)
set total to 0
repeat with x in theList
  set total to (total + (atof (x)))
end repeat
set message to "(" & (join theList using ") + (") & ") = " & total

--> "(-1) + (0.01) + (+1) + (2) + (99) = 101.01"
こういう手品が使えるようになる。

find text: これがあると正規表現まわりで rubyその他に頼る必要がなくなる
atof: x as real と書いたのと同じになる (他にも sin, cos とかC言語ライクな数学関数が色々)
join: 定石の set AppleScript's text item delimiters to "," を使ったリスト連結よりもシンプル
マニュアル: http://www.satimage.fr/software/en/dictionaries/dict_satimage.html
0268名称未設定
垢版 |
2014/09/20(土) 07:21:55.77ID:J1L8Sc170
数値 + 数値文字列 = 数値
なので、この場合 atof は無くてもOKでした
0269名称未設定
垢版 |
2014/09/20(土) 08:32:33.91ID:1d3efwqb0
>>267
わかる人は使えばいいけど、正規表現、文字列の検索・置換などの取り扱いは
ASのデフォルトの考え方を理解してないと、あとでつまづくし、機能拡張を
インストールしないと使えないスクリプトは会社などで使うときとても面倒。
検索・置換程度の話なら避けたほうがいいと個人的には思う。
do shell scriptでrubyなりperlなりsedなりいろいろ使う契機にもなるし。
0270名称未設定
垢版 |
2014/09/20(土) 08:35:19.68ID:3i170VB80
>>269
同意
個人的にosaxは使わないようにしてる
いまはdo shell scriptがあるから、何か複雑なことしたかったら
パッケージにシェルスクリプト突っ込んだ方が早いし確実
0271名称未設定
垢版 |
2014/09/20(土) 09:18:42.39ID:1d3efwqb0
「ASやってます」と言うと笑われるけど、その実、中身はdo shel scriptで他のおいしいところを
使いまくり、というのはよくある話。グルー言語としてのASは非常に強力。
0272名称未設定
垢版 |
2014/09/20(土) 16:27:57.17ID:AqRjHw4B0
do shel scriptは便利だけど使い方間違えるとめちゃくちゃ遅くなるから、気をつけないとね。
たとえば大量に変換とかの場合は、do shel scriptを回すんじゃなくて
do shel scriptの中で回るようにとかね。
0274名称未設定
垢版 |
2014/09/20(土) 23:55:25.38ID:AqRjHw4B0
>>273
なんも考えずに上のコピペしただけだわ
0275名称未設定
垢版 |
2014/10/25(土) 07:12:00.39ID:5qSeWYWr0
けっこうびっくりしたけど、10.10からのJavaScriptもここでやるといいよね。
ほかでやるとこないし。ほぼなんでもできるのかな?
0276名称未設定
垢版 |
2014/10/25(土) 09:21:10.13ID:5qSeWYWr0
思いつきだけだけど、JavaScriptだけでGUIつきアプリとかできるの?
できるわけないか。
0278名称未設定
垢版 |
2014/10/25(土) 17:55:17.74ID:N9eHGFRP0
質問です。OS Mavericks
アップルスクリプトでもう少しGUIのいいものを作ろうとして
Xcode6.1をつかってcocoa-applescriptのアプリケーションを触ってみようと思いました。
具体的にはGUIのdatePickerを配置して
AppDelegate.applescriptのファイルで
ユーザーがdatePickerで設定した日付を取得しようとしたのです。
下にコメントアウトしてるところがdatePickerとつながっており取得できていない箇所です。

on workSchedulRecorder_(sender)

set Client to name_Client's stringValue() as string
-- set the_Date to int_date's dateValue()

end workSchedulRecorder_

上のはCombo BoxとつながっておりstringValue() as stringで取得できました。
問題の箇所は調べて見つかったのに下のようなエラーがでました

2014-10-25 17:52:08.866 DPC Client Scheduler[2711:303] *** -[AppDelegate workSchedulRecorder:]: Can’t make «class ocid» id «data optr000000000D0000007491B841» into type Unicode text. (error -1700)

dateValue()ではなく違う言葉なのでしょうか・・・
どなたかお力になってくださいませんでしょうか
0279名称未設定
垢版 |
2014/10/25(土) 18:45:32.40ID:Y7ywkFMP0
>>278
set the_Date to int_date's dateValue()
これでそのエラーになる?出ないけどなあ
set the_Date to int_date's dateValue() as string
だと、文字列に変換できないオブジェクト(この場合NSDate)を文字列に変換しようとすると(全く)同じエラーが出るけど

Cocoaの日付周りはちょっと優しくないのでえ。ちょっとだけだけど
0280質問者 278
垢版 |
2014/10/25(土) 19:08:00.49ID:N9eHGFRP0
早速お答えいただきありがとうございます!
そして、すいません。私の早とちりでした。
display dialog に、だそうとしてそのエラーになりました。
log the_Dateで確認できました。

そこで、もう一つ質問したいのですが、
このthe_Dateから得たdate_Value()を
アップルスクリプトのdateの型?っていうのでしょうか
date "2014年10月25日土曜日 0:00:00" にするのにはどうすればいいのでしょうか?
0281名称未設定
垢版 |
2014/10/25(土) 19:25:35.38ID:Y7ywkFMP0
>>279,278
とりあえずな日付(NSDate)を文字列にはこんなんかな
set theDate to int_date's dateValue()
set dateFormatter to current application's NSDateFormatter's alloc()'s init()'s autorelease()
dateFormatter's setDateFormat_("YYYY-MM-dd hh:mm:ss a")
set dateString to dateFormatter's stringForObjectValue_(theDate)

's autorelease()
はいらないのかもしれない。Cocoa-AppleScriptでそこらがどないなってるのかわからないから入れてみた
Objective-Cだと余計な場合はクラッシュするがクラッシュしないので、入れた方がいいのか入れても入れなくてもいいのか不明

>>280
わからんw
文字列にしたら date にできるんじゃないかな。AppleScriptもdate<->文字列はめんどくさいっぽいなあ
0282名称未設定
垢版 |
2014/10/25(土) 19:27:59.17ID:pbKxf6+40
暇つぶしにデータピッカからテキストにして、テキストからNSDateに変換する流れ書いてみた、テストしてないです。
NSDateはテキストじゃないから、直接変換しようとしてつまるよねー。
property datePicker : missing value
set pickDate to my datePicker's dateValue()
set nsDateObj to my pick2date(pickDate)

on pick2date(pickdate)
  set cal to current application's class "NSCalendar"'s currentCalendar()
  set com to cal's components_fromDate_(254, pickdate)
  set year to com's |year|()
  set month to com's |month|()
  set day to com's |day|()
  set hour to com's hour()
  set minute to com's minute()
  set second to com's |second|()
  set time2sec to (((hour) * 3600) + ((minute) * 60)+ second) as number
  set qqq to my mkDate(year, month, day, 0) + time2sec
  return result
end pick2date

on makeDate(y, m, d, s)
  tell (get current date)
     set {year, its month, day, time} to {y, m, d, s}
     return its contents
  end tell
end makeDate
0284名称未設定
垢版 |
2014/10/25(土) 20:10:23.39ID:pbKxf6+40
ハンドラの呼び出し名適当なやつのまんまだわ適宜直してちょ
0285質問者 278
垢版 |
2014/10/25(土) 20:18:04.97ID:N9eHGFRP0
281さんありがとうございます。実際おしえてもらったコードを入れてみました
set Client to name_Client's stringValue() as string
set the_Date to int_date's dateValue()

set dateFormatter to current application's NSDateFormatter's alloc()'s init()'s autorelease()
dateFormatter's setDateFormat_("YYYY-MM-dd hh:mm:ss a")
set dateString to dateFormatter's stringForObjectValue_(theDate)
最後の行でエラーが起きてしまいました
Scheduler[3049:303] *** -[AppDelegate workSchedulRecorder:]: The variable theDate is not defined. (error -2753)
ご返答のコード内容が理解できない初心者なのですが
変数のthe_Dateは作っていただいた書式にははまらないということでしょうか
もう少しねばってみたいと思います。ご返答ありがとうございました!
0286名称未設定
垢版 |
2014/10/25(土) 20:26:21.21ID:pbKxf6+40
>>285
落ち着きなさいtheDateが無いんだ
君はthe_Dateにしてるみたいだよ。
0287質問者 278
垢版 |
2014/10/25(土) 20:55:41.66ID:N9eHGFRP0
285さんありがとうございます!!
もう、学も無いのに英語サイトまわってくたくたになっていました。笑
出ました出ました!
本当に助かりました。ありがとうございます!
dateformatについての基礎知識は明日にでも探してみたいと思います。
これで、やりたいことが出来そうです。

本当にありがとうございました。

282さんありがとうございます!
いただいたサブルーチンを、appledelegateに加えて試してみたのですが、
ビルドエラーがでてしまい、試すことが出来ませんでした。
ただ、問題解決いたしましたので、お礼の返事のみさせていただきます。
ありがとうございました。
0288名称未設定
垢版 |
2014/10/25(土) 20:58:46.80ID:pbKxf6+40
>>287
あっれエラったかぁー全角スペースを変換してないとかだったりして。。。まいっか。
0289質問者 278
垢版 |
2014/10/26(日) 17:03:52.38ID:UmsXIIQV0
datePickerで悩んでいた者です。
dateformatについて私なりに調べてみました。奥が深く(?▽?; な感じでしたが、
EEEをつけると曜日まで表示されることが新たに分かりました。感謝します!

そしてまた、毎度申し訳なく書き込ませてもらいます。

下のスクリプトを「スクリプトエディタ」で実行すると、
set aaa to "2014年10月25日"
display dialog date aaa as text
->2014年10月25日土曜日 0:00:00

こうなってくれるのですが、appdelegeteのなかでは通用してくれません。
[AppDelegate workSchedulRecorder:]: Can’t make «script» into type text. (error -1700)
ただ、変数ではなくて、テキストをそのまま入れると

display dialog date "2014年10月25日" as text
->2014年10月25日土曜日 0:00:00

うまくしてくれます。ただ変数に入れないと作りたいものが作れなくて、、、
変数に入れるとなぜ急にダメになったのか、別の方法があるのか

単純なところでつまずいてしまっております。
スクリプトエディタでなんとなく進んで来れたので罰が当たったみたいで
どうか、よろしくお願いします。
0290名称未設定
垢版 |
2014/10/26(日) 18:12:44.58ID:BJ1Mvzrv0
わからん。qlmanageを一覧表示で表示するにはどうすればいいの?
0291名称未設定
垢版 |
2014/10/26(日) 20:02:33.54ID:THGeGbUA0
>>289
set dateString to "2014/10/26" as text
log class of dateString
log class of "2014/10/26"
log class of date dateString
log class of date "2014/10/26"
Cocoa-AppleScript の date文 が変数の場合なんかおかしなことをしている/おかしなことになっている
date 変数
の場合に作られるのは«script»オブジェクト?

NSDateベースで考えた方がいいような
どうしてもdateオブジェクト使いたい場合でも、で文字列からdateオブジェクトへは、文字列からCocoaオブジェクトにしてからdateオブジェクトへかなあ
0293質問者 278
垢版 |
2014/10/26(日) 22:37:36.09ID:UmsXIIQV0
292さんありがとうございます。がんばってみましたが能力が足りないせいでうまくいきませんでした
set the_Date to pick_date's dateValue() --my取りました
set nsDateObj to my pick2date(the_Date)

on pick2date(pickdate)
  set cal to current application's class "NSCalendar"'s currentCalendar()
  set com to cal's components_fromDate_(254, pickdate)

set year to com's |year|()
  set month to com's |month|()
  set day to com's |day|()
  set hour to com's hour()
  set minute to com's minute()
  set second to com's |second|()
  set time2sec to (((hour) * 3600) + ((minute) * 60)+ second) as number
set qqq to my makeDate(year, month, day, 0) + time2sec --mkDateからmake dateに訂正
  return result
end pick2date


on makeDate(y, m, d, s)
  tell (get current date)
     set {year, its month, day, time} to {y, m, d, s}
     return its contents
  end tell
end makeDate
いろいろ試しながら探しながらやってみました。。せっかく書いてくださったんですが、、
すると、下記の閉じ忘れのようなエラーが出てコンパイル失敗になったようです。
0294質問者 278
垢版 |
2014/10/26(日) 22:39:28.30ID:UmsXIIQV0
Client Scheduler/AppDelegate.applescript:33: error: Expected “end” but found unknown token. (-2741)
Command /usr/bin/osacompile failed with exit code 1

先ほどwebでみつけたのですが、出だしの私はASファイルを別に作って、引数付きで呼び出して使った方が良さそうです。
0295質問者 278
垢版 |
2014/10/26(日) 22:40:19.50ID:UmsXIIQV0
291さん ありがとうございます。logで調べながらする方法すばらしいですね。
log class of date dateString 私のひっかかった date "変数" の箇所
log date dateString ですると複数のパラメーターがどうのでエラーになりました
appdelegateはすごく私には早すぎた感がありました。皆さんこんなに助言いただいたのに
うまくいかず申し訳ありません。

今回はdatePickerからもらった値をASに引っ張り込んで祝祭日と比較などして
最終「カレンダー」のeventに登録していきたかったので、ASファイルを別に作って
datePikerから得た文字列を引数にして呼び出そうと思います。

これから、その作業をしてみようと思います。ありがとうございました!!
0296名称未設定
垢版 |
2014/10/26(日) 23:30:37.10ID:THGeGbUA0
>>295
>log date dateString ですると
うん、date dateString で «script»オブジェクト(?)ができての、«script»オブジェクトをlogするためになんか(文字列)変換/«script»オブジェクトに対してなんかしよとして失敗かと
log class of date dateString
は、«script»オブジェクトになんのクラスやねんって問いただして、(たぶん)classオブジェクトが返って来ての、classオブジェクトは文字列に変換可能だからかと
てきとーにそう思うw
0297名称未設定
垢版 |
2014/10/27(月) 04:41:14.63ID:MFcX2T9S0
>>294
ダメだったかーごめんね。てかそのエラー全角を半角に変換してないんじゃ。。。
なんか雑に教えちゃった感じで気持ち悪いから、データピッカーのサンプル作ったよ。
http://i.imgur.com/jb3SzVE.jpg
こんな感じで時計の針を動かしたりしたりして調整できて、
↓ボタンでテキストになって↑ボタンでテキストからピッカーに送るよ。
途中でNSDateだけじゃなくて、ASDate使ってやってるからapplescriptみたいに時間の操作ができるよ。
applescriptの文字列からDate型に変換は、裏で色々やっててapplescriptobjcじゃそのままできなかった思い出があるよ(多分
今回のは、すごく雑な変換だからいろいろ工夫してみてね。
いまいち何がしたいのか分からなくて、こんなサンプルでいいのかも謎だけど、、、、、

ソースはここにあるから、エディタで開いて見て
~/DatePickerTest.app/Contents/Resources/M2AppDelegate.scpt
んじゃがんばって。

http://www1.axfc.net/u/3351055
0298質問者 278
垢版 |
2014/10/27(月) 21:15:56.87ID:glAct/fS0
297さん ありがとうございます。結果動きました!ありがとうございます!
ソースを実際に出力させて頂き
http://cocoaapi.hatenablog.comで調べながら書き込んで、5割ほど読めたかなという所です。
ASDateを間に経由して、
NSdate>ASDate>テキストと、テキスト>ASDate>NSDateに変換しているのが分かりました。
他、adjustmentのアクションの辺りdatePickerの1と2が相互に関係しているのが特に興味深かったです。
NSdateのフォーマットの最後がタイムゾーンになっているとか国際的な感じがしてびっくりしました。
馬鹿なので時間は沢山掛かりましたが、こんなに読み応えのあるソースは初めてです!ありがとうございます!
他、分からない点が3点ほどあったのですが、上手く動いたのでまた次の機会にでも
お聞かせ頂けたらと思います。

とりあえず、お礼を。あ、そうなんですやりたいことは帰宅してまた書かせて頂きます。
(一つだけ壁にぶつかってしまいまして)
今回も沢山助けられました。ありがとうございます!
0299質問者 278
垢版 |
2014/10/28(火) 00:02:12.58ID:8TXD3xq30
こんばんわ。先ほどの実際にやりたいことは
というと、あるチラシ制作の仕事をしておりまして、
チラシの折込日を入力Enterするだけで3〜4日分の各作業日を自動でMavericksのカレンダーeventに
自動で登録しようと思ったのです。コレが出来れば月一の30分仕事が2分から3分、負担も無くなります。
作業日は祝祭日と休刊日、それからクライアントのスケジューリングの方則をスクリプトに盛り込めば
できあがります。(実際スクリプトエディタでそれらを登録して可能なことを確認しました)
ただ、XcodeをつかったUIの方が効率が違うし初心者にも渡すことが出来ます。
そこで、ぶつかった1つの多分コレも小さな問題を伺えたらと思います。
それはスクリプトエディタで出来た「ASdateの加算減算」です。
・・・いまちょっといじったら直せました。反省。。たぶんこれでなんとか作成できると思います。
ありがとうございました。(汗笑)
0300名称未設定
垢版 |
2014/10/29(水) 00:07:03.41ID:fRlD6nSB0
>>299
なんか面白そうだから、似たようなの作ってみた
というか10.8から使えるようになったEventKit.frameworkを触りたかったんだ。
飛ばしたい予定が入ってるカレンダー選ぶと、土日と選んだカレンダーに入ってる予定がある日を飛ばして、予定を立ててくれる。
これは、カレンダ一つしか選べないようになってるけど、簡単に複数のカレンダーで使えるようにできる。休刊日カレンダーとか他の作業が入ってるカレンダーとか
日本の祝祭日はここのカレンダー使ってるよ。
http://www.apple.com/downloads/macosx/calendars/japaneseholidaycalendar.html

GenでPlanの項目を下から締め切り日よりさかのぼって、EKEventのタイトルにしながら作ってくよ。
PlanがworkDayより少ない場合は、最初の方の日をOccasional Dayにするよ。
EKEventを作成してるから、そのまま書き込みたいカレンダー選んでsaveEventするだけでカレンダーに書き込めるよ
applescriptでカレンダーを操作するより気持ちいいかも、利点はカレンダーを起動しなくても書き込みや削除ができることかな
EKEventのプロパティは、applescriptで触ってると思うから分かると思う。

気になった点は、カレンダー起動したままで書き込んでカレンダーの自動アップデート中にremoveするとよくないね、
カレンダーの自動アップデート中の判定はどこにあるんだろうか?

そんなかんじ、久々にapplescriptobjc触って楽しかったわー
ざっと書いたからめちゃくちゃ爪が甘くて、参考にならないと思うけどこれもうpしときます。
すくしょ
http://i.imgur.com/Xcv6AWE.jpg
http://i.imgur.com/15PHaIC.jpg
斧が鯖落ちしてるみたいだからkienuに
http://kie.nu/2gET
0302質問者 278
垢版 |
2014/10/30(木) 22:21:06.57ID:1wagBLBS0
300さんありがとうございます! すごく勉強になりました。
それからまた作り込みがすごくて全然読めないです。汗
これからゆっくり読んでいきたいと思います。

EKEventって初めて聞きました。・・・ははは汗笑
それにしても、カレンダーを起動せずして書き込みなんて手品のよう!

読み解くには1ヶ月くらい覚悟します!
取りあえず版ができました。質問したおしたのでその成果をアップさせてもらいますね。
http://kie.nu/2gSs
これでいいのかな・・・笑
(クライアント名は変えましたクビになるので笑、なので法則はそれぞれバラバラです。)
操作は、キーボードのみでお手軽にできるものです。(見た目もシンプル!)
まぁ、こんな単純な物しかできなかっただけなんですけれど取りあえずホッとしてます。

これから、各作業日のステップ毎にカレンダーを分けて色別にしたり、
カレンダーの内容を読み取って、今日の作業を表示するTODOのようなパネルを作りたいです。
手軽な入力でカレンダーからTODOまでできるみたいな。

また無謀な、生きてるうちに出来るかな・・・(遠い目
0303名称未設定
垢版 |
2014/10/31(金) 02:04:32.90ID:P6vAtVvi0
スレチだったら誘導願いますが、ここが最も適当かと思って質問させていただきます。

RAW現像ソフトLightroom5で書き出しの後処理でターミナル上で動く
ExifToolを起動しカメラのシリアルNo.を削除したいのですが、下記の方法までは分かりました。

ExifTool
http://www.sno.phy.queensu.ca/~phil/exiftool/

1.ターミナルを開いてEXIFTOOLと入力した後、画像ファイルをターミナルに
 ドラッグ&ドロップするとパス付きファイル名が入力されてリターンキーで
 EXIFが表示される。

2.ターミナルを開いてEXIFTOOL -SERIALNUMBER=と入力した後、
 画像ファイルをターミナルにドラッグ&ドロップするとパス付きファイル名が
 入力されてリターンキーでEXIFからシリアルNo.が削除されて保存され
 別途、***.jpg_originalというファイル名でオリジナルファイルが保存される。

教えていただきたいのは、ここから先、
このコマンドをエイリアス化しなければならないようなのですが
ここが全く分かりません。どうすればよろしいのでしょうか。
0304名称未設定
垢版 |
2014/10/31(金) 02:31:53.45ID:4JVpEUGQ0
エイリアス化……? ちょっといみがわからん
受け売りをするならソースも貼れ
そもそもそれはapplescriptではなくシェルスクリプトだからこっちだな
Mac OS XをUnixとして使ってる人の為のスレ 17
http://anago.2ch.net/test/read.cgi/mac/1383436068/

ただ、lightroomの仕様がわからん以上、結局lightroomユーザ以外には
答えられんから、adobeスレで訊いたほうが早そうだ
少なくともapertureユーザのおれはその辺のわざわざ調べたくないからパス
0305名称未設定
垢版 |
2014/10/31(金) 02:58:55.50ID:cDlSGdtw0
>>303
とりあえずAutomatorでいいんじゃないの
Automatorはそれこそそういう単純な用途にあるのに誰も使わない不憫なヤツw

ExifToolはコマンドだから「シェルスクリプトを実行」アクションになるけど

EXIFを弄るだけだからLightroom5はほとんど全く関係ないはなしでそ
0306名称未設定
垢版 |
2014/10/31(金) 03:03:13.30ID:U4KxWBg20
>>303
>>このコマンドをエイリアス化しなければならないようなのですが
情弱がよくわかってない情報を然も当然かのように、質問に交えて自分の立場を少しでも上げようとする、
その態度じゃ、どこに行っても適当にあしらわれるだけだよ。
少しは人に物を聞く態度を勉強してこい
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況