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/
0690名称未設定
垢版 |
2016/02/06(土) 22:05:24.20ID:PZIXO4V20
細かいこと言わなきゃ 環境設定→ルール の実行パターン「メッセージを転送」で済みそうな気もするけど。

もしくは、実行パターンとして「AppleScriptを実行」てのもあるからそこ使えば作れるかも。
0691名称未設定
垢版 |
2016/02/07(日) 01:23:00.23ID:gYLu6YbZ0
AppleScriptでメーラー作ればいいんじゃない
0694名称未設定
垢版 |
2016/02/24(水) 18:45:41.19ID:PaiBzqoz0
教えてください。
ttp://hottinroof.blog54.fc2.com/blog-entry-77.html
のスクリプトを使って写真のリネームをしています。本日 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が有効になるのか教えてください。お願いします。
0695名称未設定
垢版 |
2016/02/24(水) 19:33:34.55ID:PcH/7f1n0
頭の Macintosh 取って、 /usr から始めればいいんじゃない
0696名称未設定
垢版 |
2016/02/25(木) 10:01:21.68ID:cT4RuRny0
>>694
このAを各々Bと置き換えたらできないかな?
A:
set scrptMO 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
0697名称未設定
垢版 |
2016/02/26(金) 07:53:10.85ID:/CCFtnsQ0
>>695
>>696
だめでした。pathの変更を記述しただけじゃダメみたいです。
ちょっとお手上げ。
0698名称未設定
垢版 |
2016/02/26(金) 09:09:33.85ID:xF52EGeJ0
>>697
試しにel capitanで実行しても動いたよ。>>696
変な所いじってない?
元のまま該当部分だけ置き換えた?

エラーが出るならなんてエラーが出てるかも書かないと。
0699名称未設定
垢版 |
2016/02/26(金) 16:20:14.71ID:atUtY2LD0
exiftoolいらんかったんや

と思ったけど、調べてみたら、一発で所望のリネームまでできるじゃないか
exiftool '-FileName<$model $DateTimeOriginal%+c.%e' -d '%Y%m%d %H%M%S' ファイル...
ドロップレットで処理するとしても長々いらんかったんや
0700名称未設定
垢版 |
2016/02/26(金) 18:59:39.08ID:/CCFtnsQ0
>>698

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

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

ありがとうございます。
0702名称未設定
垢版 |
2016/02/29(月) 18:41:06.52ID:FzgXm9MA0
上の処理をシェルスクリプトの勉強がてら書いてみたんだけど、
よくわかっていないのでイマイチすっきりしない。
どう書いたらスマートに書けるか詳しい人教えて。
for f in `ls` ; do mv $f `sips --getProperty model $f | sed -n '/[0-9: ]$/p' | sed 's/ model: //'`
0703名称未設定
垢版 |
2016/02/29(月) 18:42:34.87ID:FzgXm9MA0
なんかとちゅうで切れてるので再アップ
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
0704名称未設定
垢版 |
2016/02/29(月) 20:57:20.57ID:7rDDasVF0
おめーはよー、シェルスクリプトだけの話しかしねーならスレ違いだろボケー
このスレらしくImage Eventsで書き直した版持ってこいよ
0705名称未設定
垢版 |
2016/03/15(火) 18:33:52.75ID:D7JpzMMj0
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を使って入れています。
0706名称未設定
垢版 |
2016/03/15(火) 19:05:41.06ID:8FCCxXqP0
例のあれ、LANG=ja_JP.UTF-8 設定して解決じゃないの
0707名称未設定
垢版 |
2016/03/16(水) 02:06:49.60ID:SCX7A7Ur0
$ "hoge -hoge '/日本語/日本語'"
ってするんじゃないの
0708名称未設定
垢版 |
2016/03/16(水) 02:30:44.77ID:uKUS3Bk/0
           |
            |  彡⌒ミ
           \ (´・ω・`)またhageの話してる
             (|   |)::::
              (γ /:::::::
               し \:::
                  \
0709名称未設定
垢版 |
2016/03/16(水) 08:57:16.32ID:wz/7bs1s0
>706
localeはLANG=ja_JP.UTF-8になっています。

>707
シングルクォートの事でしょうか? 囲っても囲まなくても結果は同じでした。
0710名称未設定
垢版 |
2016/03/16(水) 08:59:05.73ID:aX1+TI1t0
>>709
いやコマンドのコードに書き込めよ
中に書いてあっても読み込まないよ。
0711名称未設定
垢版 |
2016/03/16(水) 09:14:46.67ID:wz/7bs1s0
>710
コマンドに入れたらできました!
ありがとうございます。次からはおまじないで入れとくことにします。
0712名称未設定
垢版 |
2016/03/16(水) 10:42:50.80ID:gHrb8tu60
テキストエディットで文末に表示とカーソルを移動させたいのですが、
どこをどう直せばよいですか?

tell application "TextEdit"
activate
tell front document
set selection to last paragraph
end tell
end tell
0713名称未設定
垢版 |
2016/03/16(水) 11:40:47.13ID:wz/7bs1s0
>>712
詳しく知らないけど、ぱっと見それらしい命令がないので無理じゃないかな?
最終目的がわからないけど直接テキストデータいじった方が早いかも。
0714名称未設定
垢版 |
2016/03/16(水) 11:51:48.56ID:4r7QBeuW0
キーバインドで操作出来るんじゃないの
0715名称未設定
垢版 |
2016/03/16(水) 12:48:41.48ID:gHrb8tu60
>>713-714
ありがとうございます

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

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

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

tell application "TextEdit"
activate
tell front document
tell application "System Events" to key code 125 using {command down}
end tell
end tell
0716名称未設定
垢版 |
2016/03/16(水) 13:14:48.69ID:wz/7bs1s0
コピーってのがクリップボードへのコピーならカーソルを移動しなくてもこれでできる。
tell document 1 of application "TextEdit" to set every text to every text & return & (the clipboard)
0717名称未設定
垢版 |
2016/03/17(木) 02:02:48.03ID:tknj+PfJ0
速度的にはどうなんだろ
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
0718名称未設定
垢版 |
2016/03/17(木) 05:32:07.90ID:U21OisUH0
>>717
どうもapplescriptに見えんなーと思ったらapplescriptじゃなかった
JS使いにとってはASで素直に置換ができない問題がこれで解消されるわけか?
まあしかしASだけでルーチン組むのとあんまり変わらんから
やっぱり速度の問題になるよね
0719名称未設定
垢版 |
2016/03/17(木) 06:23:24.08ID:nfY5T6ih0
Doublequoteはescape必要に見えるけど、大丈夫?
0720名称未設定
垢版 |
2016/03/17(木) 07:12:42.55ID:3oRdLlSm0
失礼、勘違いだった。
0721名称未設定
垢版 |
2016/03/17(木) 09:20:51.65ID:DWzTlfih0
>>717
いいね、これ

前に似たようなことやりたくて、JSで書いたやつを~/Library/Script Librariesに置いてASから使おうとしてダメだったから諦めてた
代わりにuse framework "Foundation" ... NSRegularExpressionで書いて使ったけど見た目ごちゃごちゃしてるしマンドクサかった
0722名称未設定
垢版 |
2016/03/17(木) 20:45:27.45ID:tknj+PfJ0
721です。昨日から触り始めたので、目新しいことばかりです。
配列やオブジェクトが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
0723名称未設定
垢版 |
2016/03/17(木) 20:50:16.07ID:tknj+PfJ0
721さんではなくて717でした、失礼
0725名称未設定
垢版 |
2016/03/29(火) 21:22:05.25ID:0SkJ9rAs0
>>711
NSRegularRexpression をラップしてたマンドくさくないシンプルなインタフェースのライブラリをつくればいいのではないかしら。
0726名称未設定
垢版 |
2016/04/22(金) 15:37:59.52ID:hRzbi5SJ0
ASOCでウインドウをフローティング(常に前面)にしたいのですが、
どこでどう設定したらいいんでしょう?
0727名称未設定
垢版 |
2016/04/22(金) 20:48:33.70ID:OU5jWO7P0
>>726
  property win : missing value --xivでウィンドウど接続
--初期化で
  win's setLevel_(3)
0728726
垢版 |
2016/04/25(月) 10:29:40.54ID:H7rkWOxZ0
>>727
すみません。エラーも起きませんが、フローティングにもなりません。
現在記述してあるのは、下記のみです。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
0729726
垢版 |
2016/04/25(月) 10:44:02.50ID:H7rkWOxZ0
アンダーバーが抜けていました。アンダーバー入れてもフローティングにはなりません。
_win's setLevel_(3)
0730名称未設定
垢版 |
2016/04/25(月) 14:24:15.74ID:pJvZnNc40
>>728
  on applicationWillFinishLaunching_(aNotification)
   set aB to current application's NSBackingStoreBuffered
   set aRect to {{300, 300}, {300, 300}}
   tell current application's NSWindow's alloc()
    tell initWithContentRect_styleMask_backing_defer_(aRect, 7, aB, false)
     tell current application's NSView's alloc()
      tell initWithFrame_(aRect)
        setNeedsDisplay_(true)
        set aView to it
      end tell
     end tell
     setContentView_(aView)
     setDelegate_(me)
     setTitle_("TEST")
     setLevel_(3)
     makeKeyAndOrderFront_(me)
    end tell
   end tell
  end applicationWillFinishLaunching_

xiv怪しいから試しにwinnow作ってやってみて
これで出来ると思う
0731726
垢版 |
2016/04/25(月) 15:54:15.90ID:H7rkWOxZ0
>>730
ありがとうございます。
test windowはちゃんとフローティングになりました。
自分で作成したwindowはどこをどう設定したらいいんでしょう?
0732名称未設定
垢版 |
2016/04/25(月) 22:43:08.77ID:pJvZnNc40
>>731
xivのバグでoutlet接続しても接続されないってのがある、これはALを切ったりxivの設定を触ってると治る事がある
ただこれの場合はunrecognized functionとエラーログが出るのでおそらく別の問題。
通常、初期状態のxivのwindowをoutletを繋いでsetLevel_を呼び出せば、表示レベルが変更される。
マクロの定数をキャストしてな事による定数誤差の場合、>>730のコードも適用されないのでこれも違う
よってxivの設定が間違っている可能性が濃厚
0733726
垢版 |
2016/04/26(火) 09:37:28.68ID:TnaIN42b0
>>732
たびたびありがとうございます。
バグの可能性を聞いて、接続したり切ったり、設定を変えたりして
いじっていたらできることがありました。(2回成功しました)
ただ、これといった確実な方法が見つからずほとんどの場合はできません。
フローティングにならない場合でも同じ設定でエラーは出ません。
手動でoutletsの設定したい場合はどうしたらいいのでしょう?
0734726
垢版 |
2016/04/26(火) 09:53:27.89ID:TnaIN42b0
連投すみません。
絶対とは言えないのですが、高確率で成功する方法を見つけました。
property win : missing valueとwin's setLevel_(3)の両方を書いてからoutletsに接続すると成功率が高いようです。
property win : missing valueを設定してwin's setLevel_を実行する前にoutletsに接続してしまうと高確率で失敗します。
0735名称未設定
垢版 |
2016/04/26(火) 11:06:47.77ID:g47x2a7n0
>>734
Visible At Launchをオフにしてコードでwindowを表示してみましょう。
もし表示出来たならOutletが正しく接続されているので他に原因がある事になります。
_win's makeKeyAndOrderFront_(me)
_win's setTitle_("TEST")--ついでにタイトルも変えてみましょう

xivのwindowは、初期設定状態でしょうか
例えばxivでwindowのHidesOnDeactivateをonにしていると、他のアプリに移動した時にウィンドウが消えます。
0736726
垢版 |
2016/04/26(火) 14:07:33.25ID:TnaIN42b0
とりあえず新規プロジェクトで実験しているので初期設定状態のままです。
_win's makeKeyAndOrderFront_(me)
_win's setTitle_("TEST")
を試した後からなぜか突然フローティングに失敗しなくなりました。
新規で作ってさっきまでうまくいなかったやり方で試しても大丈夫です。
よくわからないけど助かりました。ありがとうございます。
0737名称未設定
垢版 |
2016/04/29(金) 22:34:11.86ID:YksCyGws0
# sed - put commas at the end of every line in stdin
# awk - pass to awk to remove the linefeeds
# sed - remove the comma from the last line
# sed - turn all spaces into pluses
address=`sed -e "s/$/,/g" | awk '{ str1=str1 $0 " "}END{ print str1 }' | sed -e "s/, $//g" | sed -e "s/ /\+/g"`
open "http://www.amazon.co.jp/s?field-keywords=$address";

Automatorのサービスで右クリックできるようにしたのですが、
これをつねにfirefoxで開くようにしたいです。
どのように付けくわえればよいでしょうか?
0738名称未設定
垢版 |
2016/04/29(金) 23:50:36.50ID:mmmN9YIf0
デフォルトブラウザがFirefoxならそのまま行くんじゃないの
それかopen -a Firefoxにするか
0739名称未設定
垢版 |
2016/04/30(土) 02:41:26.48ID:6hA5ZwKI0
または open -b org.mozilla.firefox
0740名称未設定
垢版 |
2016/04/30(土) 08:23:41.53ID:7vBWrPt20
>>738,739
ありがとうございます
デフォルトはSafariです
amazonの検索だけFirefoxにしたかったのです

教えてもらった行を最後に付けくわえてみたら、
Firefoxは起動するけど、検索自体はSafariのままでした。
付けくわえかた間違ってるのでしょうか・・・?
0741名称未設定
垢版 |
2016/04/30(土) 10:25:24.23ID:OIJSFV4t0
加えるんじゃなくて、最後の行のopenを置き換え
0742名称未設定
垢版 |
2016/04/30(土) 10:42:10.10ID:7vBWrPt20
>>741
ありがとうございます!
うまくいきました、助かりました。
0743名称未設定
垢版 |
2016/05/12(木) 13:39:13.01ID:OI34QQdR0
すごく単純な質問かもしれませんがご容赦ください
display dialogのテキストフィールドに、ユーザーが計算式を入力して、スクリプトに計算させるにはどうしたらいいでしょうか

例えば1/2+12/24と入力すると1と返ってくるようにしたいのです
0744名称未設定
垢版 |
2016/05/12(木) 14:20:47.24ID:U+AgI3Kr0
set r to "1/2+12/24"
run script r
0745名称未設定
垢版 |
2016/05/12(木) 14:23:56.87ID:OI34QQdR0
>>744
ありがとうございました! 助かります!
全く思いつきませんでした!
0746名称未設定
垢版 |
2016/06/09(木) 22:46:54.30ID:e2kQHPZ50
クリップボード内のテキストを置換や挿入削除するのを使っています。
これを改造して、改行も文字と同じように置換や挿入削除したいのですがどのようにすればいいのでしょうか?
例えば「ほげほげ」を

「ほげ
ほげ」

に置換、またその逆もなんですが。
改行そのものは""で括らず「ASCII character 13」などと書けばいいのまではわかりました。

try
set the clipboard to «class ktxt» of ((the clipboard as text) as record)
set orig_txt to the clipboard as text
if orig_txt is not "" then
set orig_txt to FindAndReplace(orig_txt, "hoge", "ほげ")
set orig_txt to FindAndReplace(orig_txt, ASCII character 13, "★改行消したよ★")
set the clipboard to orig_txt as text
else
error "The clipboard is empty..." number 1
end if
on error err_msg number err_num
reportErr(err_num, err_msg)
end try
on FindAndReplace(targetStr, pre, pro)
set CurDelim to AppleScript's text item delimiters
set AppleScript's text item delimiters to pre
set targetStr to text items of targetStr
set AppleScript's text item delimiters to pro
set targetStr to targetStr as string
set AppleScript's text item delimiters to CurDelim
return targetStr
end FindAndReplace
0747名称未設定
垢版 |
2016/06/10(金) 01:04:00.29ID:izjeg4LE0
set orig_txt to FindAndReplace(orig_txt, "ほげ", "ほげ" & return) -- ただしイマイチ
「ほげほげ」
 ↓
「ほげ
ほげ


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

 ↓
「ほげほげ」
0748名称未設定
垢版 |
2016/06/10(金) 09:43:34.69ID:zdYeUK5r0
最初はとっつきにくいだろうけど、
ASで文字列処理するならrubyなりperlなり使った方が圧倒的にラクだよ。

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

エラーが出る場合(ruby1.9以降)は$KCODE='u'の頭に#つけて。(コメントアウト)
0749名称未設定
垢版 |
2016/06/10(金) 10:39:21.65ID:+RUCD7ZN0
>>748
クリップボードに加工したいデータがあるのなら、pbpaste コマンドで ruby スクリプトの標準入力にデータを渡すべき。引数にはデータ容量の制限があるので、大きなデータの場合はエラーになる。
程度問題だけど、プロセス起動のオーバーヘッドは馬鹿にならないので、ほとんどの場合(とくに処理するデータが少ない場合)は外部コマンドを起動するよりAppleScript で閉じたほうが速い。
0751名称未設定
垢版 |
2016/06/10(金) 11:09:32.87ID:XlL7naR70
>>749
pbpasteなんて知らんかった。ありがとうございます。

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

一応pbpaste使った場合。>>

set rubySc to "
#encoding: utf-8
$KCODE='u'
str=`pbpaste`
puts str.gsub(/[\\r\\n]/, \"\")
"
set rubySc to quoted form of rubySc
set myresult to do shell script "ruby -Ku -e " & rubySc
0752名称未設定
垢版 |
2016/06/12(日) 19:21:52.55ID:VfsjxDNU0
>>747
あざっす!!!
改行はreturnなんですね。ひょっとして…とおもったら
タブはtabでした!おかげさまで色々はかどりそうです!
0753名称未設定
垢版 |
2016/06/16(木) 22:26:54.48ID:oXUR4BNt0
予約語を変数名にしたら悲惨な事になるで
0754名称未設定
垢版 |
2016/06/19(日) 12:15:13.80ID:I4OKLVqd0
(alfredとかでホットキーを登録して、)
日時をテキストで挿入できるようにしたいのですが、

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

ここからどうすればいいでしょう?
これをやって、
さらにコマンドV、と2段階押さないといけない。
それを一回で済ませたい
なにかいい方法があれば教えてください。
(テキストを扱うどのアプリでもできるようにしたいです)
0755名称未設定
垢版 |
2016/06/19(日) 13:10:18.50ID:pah9kP3e0
AlfredでペーストするとこまでWorkflow組めるんじゃないの
続きは↓で
【コマンドラインランチャー】Alfredに惚れ込むスレ
http://potato.2ch.net/test/read.cgi/mac/1423312726/

AppleScriptでやるなら
tell application "System Events"
keystroke "v" using command down
end
とかでいけるけど
0756名称未設定
垢版 |
2016/06/19(日) 14:20:31.68ID:I4OKLVqd0
>>755
それでできるんですが
ホットキー自体がコマンドとかシフトとかと組みあわせないといけないので、
おしたら、さっと指を離すようにしないと「ペースト(コマンド+v)」にならないですね・・・

とりあえずありがとうございます
スレ違いすみませんでした
0757名称未設定
垢版 |
2016/06/26(日) 15:07:27.61ID:150GcjU60
Macの起動項目で、アプリケーション形式にしたscriptを立ち上げているのですが

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

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

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

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

自分自身のことを指すmeみたいな名前で一本化できれば良いと思って探してるのですが
何か良案がありましたら、教えてください
0758名称未設定
垢版 |
2016/06/26(日) 15:08:34.88ID:150GcjU60
757の環境は10.9Mavericksです
0759名称未設定
垢版 |
2016/06/26(日) 15:24:21.85ID:icb4+j3C0
tell me
if not frontmost then
-- ここに757の3行入れる
end if
end tell

とか?
0760名称未設定
垢版 |
2016/06/26(日) 16:17:59.11ID:MDzRPSme0
tell me to activate じゃあかんのか
0761名称未設定
垢版 |
2016/06/27(月) 00:15:21.98ID:bxICCxF00
アプリケーション形式ならactivateだけでも手前になるよ。

あと、スクリプト編集プログラムのツールバーに「アプリケーションを実行」ボタンが増えてる。
ただMavericksは無かったかも。
0762757
垢版 |
2016/06/27(月) 22:15:44.94ID:/fW9xSmu0
>>759-761
レスありがとうございます。meで行けるんですね
0763名称未設定
垢版 |
2016/07/28(木) 08:35:37.06ID:pp5916vT0
ネットワークのフォルダのファイルを指定して開くようにしているけど、
別々の環境(自宅と職場)で50個のファイルがあるフォルダと、1000個の
ファイルがあるフォルダで表示にかかる時間がまったく違う。

これはファイルを探す時間がかかるって事?
0764名称未設定
垢版 |
2016/07/28(木) 10:28:44.62ID:CZMUn6I+0
状況が曖昧。条件がごっちゃになってる。
単に50個と1000個の時間差の話なら、自宅と職場はどういう関係があるの?
職場では50個も1000個も差がなくて、自宅では50個と1000個に差があるって話?
どういう事にせよ、フルパス指定なら時間差なんてないような気がするが。
0765名称未設定
垢版 |
2016/07/28(木) 12:54:51.82ID:pp5916vT0
すまん どちらも環境的にはレガシーなんだけど。

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

職場では瞬時に表示されるが、自宅では6秒以上かかる。
時間ができたら職場に1000個のUSBでも挿してテストしてみる。
0766名称未設定
垢版 |
2016/07/28(木) 13:13:33.21ID:CZMUn6I+0
それだけ色々違う状況じゃ全く比較にならんと思うが。
ボードやHDDの速度も違えばネットワーク速度、OSの処理速度どれもちがうだろ。
とりあえず自宅で50個のフォルダを試した方が早いんじゃないか?
それで遅けりゃファイル数の問題じゃないって事だろ。
0767名称未設定
垢版 |
2016/07/28(木) 23:29:55.74ID:spKpeHA60
1000個を捨てて、50個100個150個としてみた。
快速に表示された。
異常のあるファイルが混在していたのかもしれない。
検査するユーティリティでも探してみる。
スマソ。
0768名称未設定
垢版 |
2016/08/15(月) 15:55:08.48ID:Z+tLenng0
超自己満スクリプト
do shell script "..." with administrator privileges でパスワード入れるのが面倒になってきた、
といってスクリプトにもろ書きして目に触れるのもなんか嫌だ

・キーチェーンアクセスでパスワード項目を作成
 アカウント/パスワード: applescript/パスワード
 アクセス制御: securityコマンドに常に許可(コマンド実行時の初回のダイアログででも)
・スクリプト
set |password| to do shell script "security find-generic-password -a applescript -w"
do shell script "killall -HUP mDNSResponder" password |password| with administrator privileges
0769名称未設定
垢版 |
2016/08/15(月) 19:56:52.87ID:NvXN/2Mn0
>>768
これはおもしろい。毎回思考停止してパス入れてたからその発想がなかった
たいへん参考になりました
0770名称未設定
垢版 |
2016/08/22(月) 05:48:20.56ID:Tz21TGij0
スクリプトエディタのフォーマット設定が時々デフォルトに戻っちゃんだけど、この設定ってどこに保存してあるんでしょうね?
手作業で戻すのは面倒なのでファイル差し替えで戻せると良いんだけど
0771名称未設定
垢版 |
2016/08/22(月) 06:01:31.95ID:Tz21TGij0
自己解決
$HOME/Library/Preferences/com.apple.applescript.plist
のようでした
0772名称未設定
垢版 |
2016/08/23(火) 09:37:34.26ID:xJQwUjZc0
tell application "Image Events"
set theImage to open theDropItem as alias
tell theImage
set theDimensionsList to dimensions
end tell
close theImage
end tell

set imageHeight to item 2 of theDimensionsList
set imageWidth to item 1 of theDimensionsList
set padImageHeight to imageHeight + 50
set padImageWidth to imageWidth + 50
set scriptCommand to "sips " & (quoted form of theDropItemPOSIXPath) & " -s formatOptions 100% -p " & padImageHeight & " " & padImageWidth & " --padColor 555555 "
ここからさらに#999余白6pxを付加する記述を教えてください。
現在50px付加jpgをさらに6px付加スクリプトに投げてます。
0773名称未設定
垢版 |
2016/08/23(火) 11:09:57.92ID:0A/9/lIK0
間違ってるかもしれないが、2回処理(一旦保存)しないと無理なんじゃないかな?
連続して実行しても2番目の処理しか行われないっぽい。

あと、質問するときはそのままで動く物を載せた方がいい。
0774名称未設定
垢版 |
2016/08/23(火) 12:46:18.96ID:6f9IVph50
on open dropObjects
tell application "Image Events" to launch

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

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

tell application "Image Events"
set theImage to open theDropItem as alias
tell theImage
set theDimensionsList to dimensions
end tell
close theImage
end tell
0775名称未設定
垢版 |
2016/08/23(火) 12:49:20.77ID:6f9IVph50
774の続き。
set imageHeight to item 2 of theDimensionsList
set imageWidth to item 1 of theDimensionsList

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

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

do shell script scriptCommand
end repeat

end open
ここからさらに#999余白6pxを付加する記述を教えてください。
現在50px付加jpgをさらに6px付加スクリプトに投げてます。
0776774
垢版 |
2016/08/23(火) 12:53:52.23ID:6f9IVph50
もし二つのスクリプトが必要な場合、一つ目のスクリプトの最後に「保存後6px.app」に投げるを書き、
6px.appの処理の最後に「JPEGで上書き保存」を各方法を教えて頂けないでしょうか。
それも不可な場合、一つ目のスクリプトはこのままで、2つめのスクリプトの最後に「上書き保存」の記述を教えてください。。
0777名称未設定
垢版 |
2016/08/23(火) 13:03:51.80ID:0A/9/lIK0
丸投げのつもりなら >>1参照
多少なりとも理解しているなら、2回繰り返すだけ。
0778774
垢版 |
2016/08/23(火) 13:10:30.12ID:6f9IVph50
一回目のend repeatの直後に
tell application "Image Events" to launch..と続けてみましたが二回目の色指定余白しか付加できません。
なにが間違ってるんでしょうか。。
0779774
垢版 |
2016/08/23(火) 13:10:30.46ID:6f9IVph50
一回目のend repeatの直後に
tell application "Image Events" to launch..と続けてみましたが二回目の色指定余白しか付加できません。
なにが間違ってるんでしょうか。。
0780名称未設定
垢版 |
2016/08/23(火) 13:26:32.34ID:rviZjxD00
所望のオプション付けた sips を一つ追加、実行すればいいんじゃないの?
0781名称未設定
垢版 |
2016/08/23(火) 13:37:02.69ID:0A/9/lIK0
>>779
元の画像に対して違う処理をしているだけだから。
一旦保存した画像に対してもう一度処理しないと。
0782774
垢版 |
2016/08/23(火) 14:43:56.00ID:6f9IVph50
1度目の処理でデスクトップに保存すると2度目の処理が最初のドロップアイテムに対して行ってしまったため
一度目は上書き保存、二度目でデスクトップに書き出しをしました。
出来れば一度目と二度目の後にデスクトップに書き出しできるドロップファイルをいじらずに済んで嬉しいんですが・・
set scriptCommand to "sips " & (quoted form of theDropItemPOSIXPath) & " -s formatOptions 100% -p " & padImageHeight & " " & padImageWidth & " --padColor FFFFFF "
do shell script scriptCommand

tell application "Image Events"←二度目処理・・
0783名称未設定
垢版 |
2016/08/23(火) 16:13:23.56ID:w5kLaLoU0
色は判りづらいので変えてる。
ちなみにquoted formは要らんよ。
set padImageHeight to padImageHeight + 6
set padImageWidth to padImageWidth + 6
do shell script "sips " & "~/Desktop/pad" & theDropItemName & " -p " & padImageHeight & " " & padImageWidth & " --padColor FF0000"
0784774
垢版 |
2016/08/23(火) 16:38:58.45ID:6f9IVph50
>>783
ありがとうございます!30余白が従来通りデスクトップ保存、二度目に教えたいただいた物を貼り付けましたが上手く動かず。。
「デスクトップに"padファイル名.jpg"がない」?とか言われます。。
0785名称未設定
垢版 |
2016/08/23(火) 17:16:48.56ID:w5kLaLoU0
>>784
そりゃ入れる場所間違ってるんじゃない?
やってること理解すればどこでエラーが起きてるのかわかる。
0786774
垢版 |
2016/08/23(火) 17:28:39.87ID:6f9IVph50
以下にて原画→枠線1追加→枠線2追加→上書き保存で妥協しました。
できれば原画→枠線1追加→枠線2追加→同名でデスクトップに新規保存、がしたかった。。
on open dropObjects
tell application "Image Events" to launch

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

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

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

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

set padImageHeight to imageHeight + 50
set padImageWidth to imageWidth + 50
0787名称未設定
垢版 |
2016/08/23(火) 17:29:22.88ID:6f9IVph50
続き・・
set scriptCommand to "sips " & (quoted form of theDropItemPOSIXPath)
& " -s formatOptions 100% -p " & padImageHeight & " " & padImageWidth & " --padColor
55555 "
do shell script scriptCommand

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

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

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

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

end repeat
end open
0788名称未設定
垢版 |
2016/08/23(火) 17:44:26.75ID:w5kLaLoU0
自分でアップしたものを、ちょこちょこ変更するから動かなくなる。
俺の書いた部分と自分の書いた部分の差異もわからないなら変に触らないほうがいいよ。
0789名称未設定
垢版 |
2016/08/23(火) 17:47:21.30ID:NoSsmXKJ0
高さと幅に奇数を加えるのがモニョモニョする
■ このスレッドは過去ログ倉庫に格納されています

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