2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

AppleScript アップルスクリプト 質問、発表 6

1 :名称未設定:2013/12/21(土) 21:50:45.07 ID:1PJJFexL0.net
質問、発表どっちでもスレ。

■注意
安直なスクリプト作成依頼、丸投げ、「こういうの作ってください!」はお断り。
わからない点、エラーが解決できない点についてはスクリプト片を添えて質問すること。
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/

751 :名称未設定:2016/05/12(木) 14:23:56.87 ID:OI34QQdR0.net
>>750
ありがとうございました! 助かります!
全く思いつきませんでした!

752 :名称未設定:2016/06/09(木) 22:46:54.30 ID:e2kQHPZ50.net
クリップボード内のテキストを置換や挿入削除するのを使っています。
これを改造して、改行も文字と同じように置換や挿入削除したいのですがどのようにすればいいのでしょうか?
例えば「ほげほげ」を

「ほげ
ほげ」

に置換、またその逆もなんですが。
改行そのものは""で括らず「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

753 :名称未設定:2016/06/10(金) 01:04:00.29 ID:izjeg4LE0.net
set orig_txt to FindAndReplace(orig_txt, "ほげ", "ほげ" & return) -- ただしイマイチ
「ほげほげ」
 ↓
「ほげ
ほげ


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

 ↓
「ほげほげ」

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

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

エラーが出る場合(ruby1.9以降)は$KCODE='u'の頭に#つけて。(コメントアウト)

755 :名称未設定:2016/06/10(金) 10:39:21.65 ID:+RUCD7ZN0.net
>>754
クリップボードに加工したいデータがあるのなら、pbpaste コマンドで ruby スクリプトの標準入力にデータを渡すべき。引数にはデータ容量の制限があるので、大きなデータの場合はエラーになる。
程度問題だけど、プロセス起動のオーバーヘッドは馬鹿にならないので、ほとんどの場合(とくに処理するデータが少ない場合)は外部コマンドを起動するよりAppleScript で閉じたほうが速い。

756 :名称未設定:2016/06/10(金) 10:56:48.24 ID:dGbKue2u0.net
俺は>>723推し

757 :名称未設定:2016/06/10(金) 11:09:32.87 ID:XlL7naR70.net
>>755
pbpasteなんて知らんかった。ありがとうございます。

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

一応pbpaste使った場合。>>

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

758 :名称未設定:2016/06/12(日) 19:21:52.55 ID:VfsjxDNU0.net
>>753
あざっす!!!
改行はreturnなんですね。ひょっとして…とおもったら
タブはtabでした!おかげさまで色々はかどりそうです!

759 :名称未設定:2016/06/16(木) 22:26:54.48 ID:oXUR4BNt0.net
予約語を変数名にしたら悲惨な事になるで

760 :名称未設定:2016/06/19(日) 12:15:13.80 ID:I4OKLVqd0.net
(alfredとかでホットキーを登録して、)
日時をテキストで挿入できるようにしたいのですが、

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

ここからどうすればいいでしょう?
これをやって、
さらにコマンドV、と2段階押さないといけない。
それを一回で済ませたい
なにかいい方法があれば教えてください。
(テキストを扱うどのアプリでもできるようにしたいです)

総レス数 1008
389 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★