AppleScript アップルスクリプト 質問、発表 6at MAC
AppleScript アップルスクリプト 質問、発表 6 - 暇つぶし2ch495:455
15/02/18 11:14:40.30 8cLhjAwm0.net
>>455
ありがとうございます。
早速動かしてみました、無事CSVの書き出しが出来ました。
やっと用語集の見方がわかってきました、どうやらdocumentあたりを理解出来ていなかったようです。
export document 1 to anAliasB as CSV
でファイル形式をCSVに


496:指定していても、ファイル名の指定時に.csvまで指定しないとCSVファイルにならないみたいですね



497:名称未設定
15/02/18 12:17:12.56 nxmMCsB60.net
>>457
テーブルが複数ある場合には、フォルダ名となり、その名前のフォルダが作られ、フォルダ内に (シート名-)-テーブル名.csv ファイルが作られる
テーブルが単一の場合は、ファイル名となり、その名前のファイルが作られる
テーブルが単一の場合は、拡張子の補完は行われないので、AppleScriptでやるか、単に拡張子が無いだけで中身は CSV なのでFinderで手で補完するとかすればいいんじゃね。一個だけだし

498:455
15/02/18 13:25:45.46 8cLhjAwm0.net
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書き出し
URLリンク(piyocast.com)

499:名称未設定
15/02/18 17:28:14.34 nxmMCsB60.net
>>459
set anAliasB to POSIX file (“/Users/***/Desktop/AppleScript/makecsv/“ & date string of (current date) & “.csv”)
/Users/***/Desktop/AppleScript/makecsv/ までの階層フォルダが無ければエラーになるよ
(「ご質問お願いします」は違うよ。本来どうでもいいwが2度目なのでいちおう)

500:名称未設定
15/02/18 19:15:37.54 nxmMCsB60.net
>>459
>本当は時間もファイル名に入れたい
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”)
とか

501:名称未設定
15/02/19 07:56:11.19 WW8Zmc8h0.net
Yosemiteですが、Apple TVを起動(接続かな)するApple Scriptがわかる方教えていただけませんか?
メニューバーのApple TVアイコンをプルダウンして「Apple TV」を選択したのと同じ状態のものです。

502:455
15/02/19 12:18:24.84 fbU/11QJ0.net
>>460
>>461
ありがとうございます。
fileやaliasがまだ理解出来ていないので完全に理解出来ていませんが、問題なく動きました。
今いろいろ調べてみるとAppleScriptだけじゃなくてシェルスクリプトも使えたほうが、良さそう勉強します。

503:名称未設定
15/02/20 22:26:02.48 T7vI7RqY0.net
やっぱNumber良さそうだなあ。買おうかな。安いし。

504:名称未設定
15/02/26 12:19:50.60 mJocBN5w0.net
質問お願いします。
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 war


505:ning: name not matched: ./x/ zip error: Nothing to do! (try: zip -r text.zip . -i ./x/)" number 12



506:名称未設定
15/02/26 12:46:07.99 kGBOUlNz0.net
do shell script "pwd" してみ
カレントディレクトリが / になってるから
>>1のTN2065: do shell scriptざっと調べた方がええよん
絶対パスでやるか、同じ do shell script 内で cd するか
ところで zip コマンドで作るとメタデータとか失われちゃうと思うけど、ええのん?

507:名称未設定
15/02/26 12:55:16.90 0hgLp3Ya0.net
>>465
>>466に横から補足すると、あなたの書いてる ./x/ ってのは
「今いるフォルダのなかのxって名前のフォルダ」って意味なのよ(相対パス)
だからさしあたり /Users/hoge/Downloads/ のように書けばよい(絶対パス)

508:名称未設定
15/03/01 12:25:21.00 LDAhmBff0.net
WinのVBA使いだけど、MacのAppleScriptってVBAの
プログラム開発スキル程度の能力で使えますか?

509:名称未設定
15/03/01 20:22:08.79 kF6rVJmC0.net
>>468
余裕
癖はあるけどASの方が簡単だと思う
まあシェルスクリプトとか呼び出せるし奥は深いよ

510:名称未設定
15/03/02 16:04:05.72 C2O0UwSp0.net
質問です。
文章の全角括弧を中の文字ごと削除したくて
URLリンク(www.ibm.com)
にある「正規表現の理解の混乱」の項目を参考に目的のことができるようになりました。
ですが、そのままTerminalでやっていたことをdo shell scriptでさせたら結果が違ってしまいました。
どうすればよかったのでしょうか。
Terminal
echo 'どうして北海道(ほっかいどう)で酪農(らくのう)が広(ひろ)まったのかな。' | sed -e 's/([^)]*)//g'
結果>>どうして北海道で酪農が広まったのかな。
do shell script
do shell script "echo 'どうして北海道(ほっかいどう)で酪農(らくのう)が広(ひろ)まったのかな。' | sed -e 's/([^)]*)//g'"
結果>>どうして北海道で酪農(らくのう)が広まったのかな。

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

512:名称未設定
15/03/02 17:27:48.52 +sCo7k3t0.net
こうかな
「)」は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

513:名称未設定
15/03/02 17:55:46.19 FF6Ex1uk0.net
AppleScriptで現在の日付を出すとき
current date

2015年3月2日月曜日 17:48:51
と出てきますが、
2015/03/02(Mon)17:48:51
という書式で出すにはどういうふうに変えればよいのでしょう?

514:名称未設定
15/03/02 18:06:22.62 C2O0UwSp0.net
>>471
ありがとうございます!
すごいですね。
昨日の夜からハマっていたので感動しちゃいました。
>>472の説明もわかりやすかったです。
ありがとうございました。

515:名称未設定
15/03/02 18:15:51.77 C2O0UwSp0.net
>>473
こんなんでどうでしょ。
do shell script "date +%Y/%m/%d\\(%a\\)%T"

516:名称未設定
15/03/02 18:1


517:9:57.10 ID:KO5JBopQ0.net



518:名称未設定
15/03/02 18:20:31.79 KO5JBopQ0.net
あらしつれい

519:名称未設定
15/03/02 18:40:05.58 FF6Ex1uk0.net
>>475,477
できました!
do shell script というのがあるんですね
どうもありがとうございます

520:名称未設定
15/03/03 03:08:40.47 lRTqSIjg0.net
do shell script、do shell scriptってこのスレ、シェルスクリプトのスレみたいじゃないかw

521:名称未設定
15/03/03 03:35:40.89 KOXV6q780.net
シェル「スクリプト」っぽいのが無いのでそんなことはない

522:名称未設定
15/03/03 07:34:58.80 Sgc81Rt10.net
do survive

523:名称未設定
15/03/03 16:32:18.63 9lD9n0xN0.net
日本語文字列の中に「漢字」が入っているか否か調べたいんですが、どうすればいいでしょうか?
………やっぱりdo shell script ですか?

524:名称未設定
15/03/03 16:47:50.82 1zPdGRcT0.net
>>482
文字コードでできそうだからASでもいけんじゃね
あとは>>1を読め

525:名称未設定
15/03/03 19:51:11.87 q6CC5uDH0.net
URLリンク(i.imgur.com)
このiMacが1秒で売り切れたらしいんですが人間業では無理
だと思う
AppleScriptで自動で購入するのは可能ですか?

526:名称未設定
15/03/03 21:07:30.68 KOXV6q780.net
不可能です

527:名称未設定
15/03/03 21:53:31.55 x8MbRkh10.net
単発

528:名称未設定
15/03/04 10:41:26.23 YVgo2sPl0.net
>>654
システていうか楽天だし仕込みで誰も買ってない(元々買えない)んじゃ?

529:名称未設定
15/03/04 15:02:40.98 YVgo2sPl0.net
システってなんだ俺…

530:名称未設定
15/03/04 15:10:38.77 jevBdPRX0.net
>>488
システって何?そして>>654はこの後何を言うの?

531:名称未設定
15/03/04 15:50:32.83 lSN1zvum0.net
システマはロシアの軍隊格闘技だろ
タコ踊りみたいな奴

532:名称未設定
15/03/04 17:28:03.26 YVgo2sPl0.net
システマ、殴られても熟練者なら体がほぐれるだけらしいしそのためには笑顔でいなきゃいけないらしいし対戦者は格闘中めっちゃ怖いだろうな。

533:名称未設定
15/03/04 18:05:03.45 jevBdPRX0.net
            ,.,.,.,.,.,.,.,.,__
           ,,;f::::::::::::::::::::::ヽ
           i::/' ̄ ̄ ̄ヾi::l
           |::| /  \,|::|
           |r-( ・ );( ・ )-|
           ( ヽ :::(__)..::  }  <・・・で?
        ,____/ヽ  -==- /
     r'"ヽ   t、  ヽ___/
    / 、、i    ヽ__,,/
    / ヽノ  j ,   j |ヽ
    |⌒`'、__ / /   /r  |
    {     ̄''ー-、,,_,ヘ^ |
    ゝ-,,,_____)--、j
    /  \__       /

534:名称未設定
15/03/04 19:19:43.70 EE5x3pC40.net
adobe bridge で複数のウィンドウを開いて
任意のウィンドウをアクティブにしたいんだけど
どなたか良いアイデアを

535:名称未設定
15/03/04 20:04:27.08 MOiAKvIh0.net
条件定義がおそ松くん

536:名称未設定
15/03/11 19:00:59.39 PLKc9HDB0.net
mavericksなんですが、
昨日security updateの2015-002をあてたら"eppc://“を使うスクリプトがすべて動かなくなっちゃいました。
相手はTigerです。
スクリプトエディタでコンパイルボタンを押すと
「構文エラー アプリケーションは実行されていません」と出ます。
Port3031にPingは通るし、リモートデスクトップは動きます。WakeOnLanもです。
アクセス権の修復をや


537:りましたが変わらず。 そして昨日からググってますが、(英語情報含め)な~んも出てきません。 皆さんの環境ではどうですか? もしかして私だけ・・・?



538:名称未設定
15/03/12 21:22:46.64 eBJQmQq80.net
ASOCで、コンパイル後の.appに直接ファイルをD&Dされた場合や、
Finder上の「このアプリケーションで開く」などで実行されたときに、
選択されたファイルがあるディレクトリのパスってどうすれば取得できるのでしょうか?
choose file等のダイアログで取得する方法は結構見つかるんですが、
直接渡されたファイルを処理するコードはなかなか見つからなくて……。

539:名称未設定
15/03/12 21:50:18.34 yfFaXPD+0.net
>>496
コンパイル前の設定のところでon openと同じことできた気がするけど、
今は試せないのでここまで。

540:名称未設定
15/03/12 23:53:42.30 stC/f3OT0.net
>>495
mavericksから10.3.9Pantherでも同様の症状出てます。
2015-002をあてたら"eppc://"が実行できず

541:名称未設定
15/03/13 00:57:53.41 dCGVHkpD0.net
>>498
報告ありがとうございます。やっぱりそうなんですね。
今日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はどうなんでしょうか。この際アップグレードしちゃおうかな。
どこでも話題にならないってことはよっぽどマイナーなんでしょうね。

542:497
15/03/13 23:25:12.10 nFOxkN7n0.net
>>497
設定というのがよくわからなかったのですが、とりあえず自己解決しました。
いろいろ調べるうちに、どうやら私がやりたかったのは「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_
を書いたところ、ダイアログに選択したファイルのフルパスが表示されました。
あとはこのファイルの親ディレクトリを取得したいんですが、どうすればいいんでしょうか?

543:498
15/03/14 12:20:14.97 US/unQ+p0.net
>>500
ファイルのフルパスをスクリプト内に持ち込んでparent of
自分が見たやり方はちょっと違ったと思うけど、そっちのほうが普通な感じだよね。

544:497
15/03/14 20:25:29.93 dHB3wkmC0.net
>>501
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

545:名称未設定
15/03/15 14:39:45.90 AV7GXmsk0.net
dialog出ないって事はどこがでエラーになってるんだろうね
dorpletだとエラーで即落ちするから
調べるにはtryで引っ掛けて自力でエラー表示さ�


546:ケるか、 droppedItemsの内容を把握してからテストはエディタ上でon run実行したりとか 普通のASだと>>502で合ってるよーに思うけど、 ASOCは詳しくないのでまぁ参考まで



547:名称未設定
15/03/15 14:41:34.89 AV7GXmsk0.net
言うまでもないけど
誤 dorplet
正 droplet

548:名称未設定
15/03/15 15:36:32.41 VmwaxW7K0.net
>>500
親ディレクトリ(パス)を得たいなら、
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にはパスに対するそれなりの機能がある
>>503
>dialogが表示されず
何かの拍子にアプリケーションの作成が壊れる。MainMenu.nibがアプリケーションバンドルにコピーされない。直し方はまだわからんな
Dropletだからいらんからいらんのだが、Dropletとしてちゃんとプロジェクト作成手順を踏まなければならないのかなあ
単に>>502のようなスクリプトでDroplet作るなら、AppleScript Editorでの方がいいかもしれない

549:名称未設定
15/03/15 15:38:41.87 VmwaxW7K0.net
>>505
×>>503
>>502
すまんす

550:名称未設定
15/03/15 16:02:30.67 VmwaxW7K0.net
XcodeでのCocoa Applescriptテンプレートでの表記は、
on applicationWillFinishLaunching_(aNotification)
end applicationWillFinishLaunching_
だけど、AppleScript Editorで開いたら、
on applicationWillFinishLaunching:aNotification
end applicationWillFinishLaunching:
になって驚いたw 呼び出しもObjective-C疑似スタイルで可能なのね。Xcodeでも
いつからなんだろ

551:名称未設定
15/03/15 16:07:08.38 /RgW8kRq0.net
>>502
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からレス。

552:497
15/03/15 16:45:53.56 iR+GQC990.net
>>503-508
たくさんの回答ありがとうございます!>>505の方法でちゃんと親フォルダを表示することができました
まさかこんな、ドンピシャな方法があるとは思いもしませんでした。本当にありがとうございました。

553:名称未設定
15/03/15 20:45:33.78 WymtzrWs0.net
>>507
10.9

554:名称未設定
15/03/15 22:10:53.64 VmwaxW7K0.net
>>510
なるほど。どうも

555:名称未設定
15/04/09 19:38:28.50 4kDpug2w0.net
>>495
で書き込んだ者ですが、この度修正版が出たようです。
URLリンク(dougscripts.com)

556:名称未設定
15/04/10 11:37:48.95 Tai/EZWG0.net
>>512
おめ

557:名称未設定
15/04/10 14:53:52.05 /ZQEY2Xe0.net
>>512
訂正。修正版が出たけど直ったのはMountain Lion、Marvericks、Yosemiteの間だけ。
Tigerとの間では通信できなかった。エラーメッセージは以下のように変わった。
$ osascript -e 'tell application "Finder" of machine "eppc://hoge.local" to quit'
2015-04-10 12:13:14.943 osascript[515:507] CFNetwork SSLHandshake failed (-9806)
2015-04-10 12:13:15.862 osascript[515:507] CFNetwork SSLHandshake failed (-4)
2015-04-10 12:13:16.159 osascript[515:507] CFNetwork SSLHandshake failed (-9806)
5:59: syntax error: Application isn’t running. (-600)
cmd+RでOS再インストールすれば元には戻せた。ぐぬぬ。

558:名称未設定
15/04/15 13:35:28.38 A/b2wCDlL
applescriptからrubyを実行した際に、
ruby1.8.7ではpで値を返しても日本語が化けなかったのですが、
ruby2.2.1からpで値を返すと日本語が化けます。putsの場合は大丈夫です。
仕様変更のためだと思うのですが回避方法はありますか?
単なる文字列ならputsで返しても良いのですが、配列を配列の状態で返したいので。

559:名称未設定
15/04/16 08:13:05.28 Zfi8c6iV6
>>515
自分も最近Rubyに手を出し始めたところで
あんまり詳しくない�


560:セけど…do shell script "ruby -Ku -e 処理内容"とやってUTF8前提で処理を始めるのと、require 'kconv' して、.toutf8 とやって文字列を再度UTF8に変換するのを試すくらいしか思いつかないね…それか、単にRubyの配列をAppleScriptの配列(リスト)として受け取りたいだけなら、文字化けしないputsで改行区切りのテキストとして受け取っておいて、それをAppleScript's text item delimitersに改行を指定してやることでリストに変換することはできると思うAppleScript's text item delimitersはまぁ、splitコマンドみたいなものちょっと使い方が特殊だけど、ググればサンプルスクリプトもいろいろ引っかかるはずていうか、scのMac板見てる人少ないんだね…自分もRubyのこと興味あるから詳しい人のレスがつくの待ってたけど、全然反応がない…



561:515
15/04/16 09:03:32.79 +ZLMD4wn4
>>516
レスありがとうござます。
本当人いない感じですね。試しにこっち(.sc)に書き込んでみたんですけど、.netで再質問してみます。

リスト変換は多次元配列なので単純にAppleScript's text item delimitersではできないんですよね。
前の仕様だとそのままpで書き出してrun scriptをかければリストに変換してくれたので。

ちなみに、良くわかってないのですがascii-8bitで出力されているような感じです。
force_encoding("utf-8")してもユニコードのまま吐き出されている感じです。
そして重要な事を書き忘れていましたが、do shell scriptではなくターミナルからrubyを実行した場合はpでもputsでもちゃんと日本語が表示されるんですよね。

ちなみに"こんにちは"をp出力すると
\"\\xE3\\x81\\x93\\xE3\\x82\\x93\\xE3\\x81\\xAB\\xE3\\x81\\xA1\\xE3\\x81\\xAF\"
force_encoding("utf-8")かけると
\"\\u3053\\u3093\\u306B\\u3061\\u306F\"

562:515
15/04/16 09:04:05.04 +ZLMD4wn4
なんかレスが2重になるw

563:名称未設定
15/04/16 09:35:48.15 fNeO9YuQ0.net
scの方に書き込んだのですが過疎っているようなのでこちらで再質問させてください。
下記の様なスクリプトを実行したときに戻り値が下の様になります。(ruby2.1.5)
"\"\\u3053\\u3093\\u306B\\u3061\\u306F\"
\"\\xE3\\x81\\x93\\xE3\\x82\\x93\\xE3\\x81\\xAB\\xE3\\x81\\xA1\\xE3\\x81\\xAF\"
こんにちは"
ruby1.8台の時は全て"こんにちは"で返っていたのですが、これを"こんにちは"として受け取る方法は無いのでしょうか?
ちなみにターミナルから普通にルビーを実行した場合は問題なく"こんにちは"として返ります。
単なる文字列ならputsで良いのですが配列を配列のままASに受け渡したいので。
set myScript to "#coding: utf-8
str=\"こんにちは\"
str2=ARGV[0]
p str,str2
puts str2"
do shell script "ruby -e " & quoted form of myScript & " " & quoted form of "こんにちは"

564:名称未設定
15/04/16 11:29:38.57 JP8CNjtg0.net
>>519
set myScript to "#coding: utf-8 \nstr=\"こんにちは\" \nstr2=ARGV[0] \np str,str2 \nputs str2"
do shell script "ruby -Ku -e" & quoted form of myScript & " " & quoted form of "こんにちは"
-Kオプションで文字コード指定すれば? しかしこのコードはこれで良いのか?

565:516
15/04/16 11:48:12.31 fNeO9YuQ0.net
>>520
おーできました。 -Kuで。ありがとうございます。
#coding: utf-8を入れてあれば良いのかと思っていました。

566:515
15/04/16 11:57:16.39 +ZLMD4wn4
>>516
すみません。.netで再質問しましたが、お答え頂いた-Kuで解決していました。
.netにも書きましたが#coding: utf-8が入っているので問題ないと思っていました。

567:名称未設定
15/04/16 17:46:16.43 Zfi8c6iV6
>>522
解決したようでなによりです

なんかね�


568:・、ターミナルのシェルはちゃんと最初からLANG="ja_JP.UTF-8"になってるんだけど、do shell scriptで呼ばれるシェルはデフォルトがUTF-8じゃないっぽいんだよねぇターミナルで$ localeとやった結果とdo shell script "locale"ってやった結果が違ってるの今回の件だと、Ruby上はUTF-8で処理されてるんだけど、結果が出力されたシェルの言語設定がAsciiになっちゃってたせいで化けちゃったんじゃないかと思うただ、OS10.6だとこのへんいい加減でもなぜか化けなかったんだよねぇOS10.9だとそのへんキッチリ化けちゃうので、--クリップボード内のテキストのスタイルを外すスクリプトdo shell script "LC_CTYPE=ja_JP.UTF-8 pbpaste | LC_CTYPE=ja_JP.UTF-8 pbcopy"こんな感じでRubyに限らず言語指定を足すハメになって一時期苦労してました…



569:515
15/04/16 18:10:14.96 +ZLMD4wn4
>>523
実は>>515同様の事がpythonでも起きていて、pythonはrubyとの速度比較で試しに作った程度で
全然触った事がない状態でやってたので仕様なのかと思ってました。
どうやらこの辺に原因があったみたいですね。
>>do shell scriptで呼ばれるシェルはデフォルトがUTF-8じゃない

570:名称未設定
15/05/08 22:46:21.29 vR7cr5an0.net
これは、エラーにならない。
tell application "Finder"
set tmp to POSIX file "/tmp"
end tell
こうすると、実行時エラーになる。
tell application "Finder"
set tmp1 to "/tmp"
set tmp to POSIX file tmp1
end tell
なぜだか理由がわかりません。
ご教授お願いします。

571:名称未設定
15/05/09 00:35:21.89 S1iniwej0.net
エラーになるならエラー内容も書かないと
error "Finder でエラーが起きました:POSIX file ¥"/tmp¥" を取り出すことはできません。" number -1728 from file
-1728はMacErrors.hを見ると、
errAENoSuchObject = -1728, /* e.g.,: specifier asked for the 3rd, but there are only 2. Basically, this indicates a run-time resolution error. */
とある。「Finder でエラーが起きました」言うてるから
--tell application "Finder"
set tmp1 to "/tmp"
set tmp to POSIX file tmp1
--end tell
としてみたらエラーにならなくなった。Finder側の処理が何か良くなさそうだ。
または以下でも大丈夫だった。
tell application "Finder"
set tmp1 to "/tmp"
set tmp to tmp1 as POSIX file
end tell

572:名称未設定
15/05/09 09:40:06.13 il35J4cb0.net
>>526
ありがとうございます。
書き方が間違っていたということですね。

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

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

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


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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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



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

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

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

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

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

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


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



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

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

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

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

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

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

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

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

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

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

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


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



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

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

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

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

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

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

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

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

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


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



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

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

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

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

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

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

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

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

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

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

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


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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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



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

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

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

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

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

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


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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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



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

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

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

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

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

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

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

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

・ beep
音が気にくわない。

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

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

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

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

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

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

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

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

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

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

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

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

特に�


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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

THX from 女子高生

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

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

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


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



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

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

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

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

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

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

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

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

ありがとうございます。

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

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

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

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

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

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

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

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

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

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

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

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

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


774:1s0.net



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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



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

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

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

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

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

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


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