1read 100read
2011年10月1期新・macAppleScript アップルスクリプト 質問、発表 4 TOP カテ一覧 スレ一覧 削除依頼
・ 次のスレ
QuickTimeスレッド・Part22
大学生Macユーザー雑談スレ
【革命児】篠原修司を讃えるスレ【救世主】
「 mi 」を語るスレ その3


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


1 :09/10/21 〜 最終レス :12/01/08
質問、発表どっちでもスレ。
■注意
安直なスクリプト作成依頼、丸投げ、「こういうの作ってください!」はお断り。
わからない点、エラーが解決できない点についてはスクリプト片を添えて質問すること。
■参考
AppleScript ヘルプ
help:///Library/Documentation/Help/AppleScript.help
発表まとめ (過去ログなども)
http://members.at.infoseek.co.jp/obto/script/script.html
MacWiki - AppleScript
http://macwiki.sourceforge.jp/wiki/index.php/AppleScript
AppleScript PARK
http://www.tonbi.jp/AppleScript/
AppleScript Lab.
http://www.drycarbon.com/applescript/
TN2065: do shell script
http://developer.apple.com/jp/technotes/tn2065.html
http://developer.apple.com/technotes/tn2002/tn2065.html
■過去スレ
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/

2 :
1000

3 :
これも
http://www.macosxautomation.com/applescript/

4 :
これなんかもいいと思います
http://docs.info.apple.com/help/guide.html?path=AppleScript/2.1/jp/

5 :
>>1のTN2065だけど、日本語訳が更新されてないんだよね
何故かこんな所に最新版があったり
http://edr.euro.apple.com/jp/technotes/tn2002/tn2065.html

6 :
>>5
ここにもあるよ
http://developer.apple.com/jp/technotes/tn2002/tn2065.html

7 :
ノートとかだと付いてないキーのkey codeをメモ
tell application "System Events"
key code 115 -- Home Key
key code 119 -- End Key

key code 116 -- Page Up Key
key code 121 -- Page Down Key

key code 114 -- Help Key
key code 117 -- Delete Key
end tell

8 :
Help以外はfnキーでできるがな

9 :
>>8
おお上下左右でできるのか。知らんかった。情報サンクスです。
あと、もう一個メモ
sayでちょっとした通知をしてる人は
SayKana
http://www.a-quest.com/aquestalk/saykana/
使うと片言の日本語でしゃべってくれるので英語が苦手な人だと
こっちのほうがわかりやすいかも。
do shell script "/usr/local/bin/saykana 'さぎょうがおわりました'"

10 :
配布するソフト用だと、SayKanaの配布の方法や、スクリプト内部で日英両方のメッセージを使い分ける必要があり、面倒。
標準環境で日本語が話せるようになると事情も変わるのだが。
SayKanaそのものは良いソフトだと思うけどね。

11 :
スノレパにしたらタイガー時代のスクリプトで動かないのがいくつも出てきた。
めんどくせー

12 :
そういやスノレパでFinderがCocoa化したから、
下手したらFinderのスクリプト全滅かもと思ってたけど今のところ問題なし。
よくやってくれたと言いたい。

13 :
Unibody 13" Leopardで、Finderのウィンドウサイズと場所を固定させるのにAppleScriptを使っています。
これに、「Toolbarを出しているときは非表示に、また、閉じているときは表示させる」
の動作を追加したいのですが、どうにも上手くいきません。
どなたか、手助け頂けないでしょうか?
現在のスクリプトは次レスのものです。

14 :
set display_x_size to 604
set display_y_size to 800
set cur_app to (path to «constant afdregfp» as Unicode text)
if cur_app ends with ":Finder.app:" then
set Finder to true
tell application "Finder"
set tool_vis to toolbar visible of front window
end tell
else
set Finder to false
end if

15 :
続き
tell application cur_app
tell front window
set {x1, y1, x2, y2} to (get bounds)
if Finder then
-- Finder uses inside of frame for bounds, not counting toolbar
if tool_vis then
set x1 to 4
set y1 to 44
else
set x1 to 4
set y1 to 44
end if
-- Explicit y size of your display
set x2 to display_x_size - 0
set y2 to display_y_size - 0
else
set x1 to 4
set y1 to 22
set x2 to display_x_size
set y2 to display_y_size
end if
set bounds to {x1, y1, x2, y2}
end tell
end tell

16 :
>>13-15
if toolbar visible of front window is true then
set toolbar visible of front window to false
else
set toolbar visible of front window to true
end if
を前半のtell app "Finder"〜end tellの中に入れる。
toolbar visibleはFinderだけしか認識しないので
共通化してる後半に入れるのは無理だろう。

17 :
書き込みたいのに規制中

18 :
あ、書けた。
constant afdregfp って初めて見たw
でも Finderをactivateすればいいんじゃないの??
Toolbarと関係なくてすまないです

19 :
ファインダー以外のアプリケーションの
ウィンドウサイズを変える意図がよく分からないのだか?

20 :
ちょっと書いてみた(自分で分かりやすいようにいくらか要約した)
property x_size : 604
property y_size : 800
--tell application "Finder" to activate
set currentApp to path to frontmost application as text
if currentApp ends with ":Finder.app:" then
try
tell front window of application "Finder"
set toolbarVisible to toolbar visible
if toolbarVisible then
set {x1, y1} to {4, 44}
else
set {x1, y1} to {4, 44}
end if
set toolbar visible to not toolbarVisible
set bounds to {x1, y1, x_size - 0, y_size - 0}
end tell
end try
else
try
tell front window of application currentApp
set {x1, y1} to {4, 22}
set bounds to {x1, y1, x_size, y_size}
end tell
end try
end if

21 :
>>16
>>19-20
おおっ〜!!ありがとうございます!!!
あれほど苦労して出来なかった事が、一発で出来ました!
実はプログラミング知識ゼロなので、海外サイトで見つけたコードを無理矢理自分用に手直しして
使っていて行き詰まってたんです。さすがココは職人揃いですね!!
ちなみにファインダー以外のウィンドウサイズを変える意図ですが、
右にオンライン辞書、左にテキストエディタを置いて、手元の英文資料を翻訳するとか、
Finder←→別アプリ間のファイル受け渡し作業をするとか、色々使っています。
なので、本当はCarbonとCocoaとJavaアプリ共通で使えるスクリプトがベストなのですが、
ひとまずお二人の回答に大満足です。

22 :
Illustrator で埋め込まれた画像のプロパティについてなのですが
matrixの概念がよくわかりません
やりたいことは、傾いたり拡大縮小された埋め込み画像を正寸にすることです
リフレクトされたりしている場合の処理が難しくてよくわかりません
sinθやcosθをどうすればいいのやら?
いろいろな所から参照にしたスクリプトを書きましたので以下に記します

23 :
tell application "Adobe Illustrator"
activate
set myItem to item 1 of selection
if (class of myItem) = raster item then
tell myItem
set theMatrix to matrix of it
set mv_a to mvalue_a of theMatrix
set mv_b to mvalue_b of theMatrix
set mv_c to mvalue_c of theMatrix
set mv_d to mvalue_d of theMatrix

set HScale to ((mv_a) ^ 2 + (mv_b) ^ 2) ^ 0.5
set VScale to ((mv_c) ^ 2 + (mv_d) ^ 2) ^ 0.5

set theAngle to ((do javascript "Math.acos(" & mv_a / (HScale as real) & ");") as real) * 180 / pi

set identitymatrix to concatenate rotation matrix (get rotation matrix) angle theAngle
transform using identitymatrix

set theMatrix to matrix of it
set scalematrix to concatenate scale matrix (get scale matrix) horizontal scale
(1 / (mvalue_a of theMatrix) * 100) vertical scale (1 / (mvalue_d of theMatrix) * 100)
transform using scalematrix
end tell
end if
end tell

24 :
正寸に戻すだけなら難しくないよ
tell application "Adobe Illustrator"
set thePosition to position of selection of document 1
set matrix of selection of document 1 to {mvalue_a:1.0, mvalue_b:0.0, mvalue_c:0.0, mvalue_d:-1.0}
set position of selection of document 1 to {0, 0} --なぜか一回こうしないとうまくいかない
set position of selection of document 1 to thePosition
end tell
ちゃんと検証はしてないけど、こんだけでいけるはず。
最近、といってもちょっと前だったかな
マトリックス関係の検索ワードでオレッチのサイトに来てくれたのは君かな?
たまたま昨日ログを見てて、だれかマトリックス関係で調べものをしてるんだなと思ってた。
もう何年も更新してないような恥ずかしい三日坊主のサイトですが...

25 :
サイトについて言及されてるとき以外は「ログ見た」云々の発言はあまりしないほうがいいよ

26 :
すまん、以後気をつける
あんなんでも誰かの役に立ってるのかな?と思って
普段あんまり実感がないもんだから

27 :
>>24
>>22-23 です
それ多分私ですねw
とはいえいろいろ拝見していたのでどのサイトかはわかりませんが…
スクリプトありがとうございます
あれからいろいろ調べて
invert matrix (matrix)で得たマトリックスをtransformで変形させれば
傾きと天地左右の比率が修正されるようなのはわかりました
それにしてもマトリックスは難しいですね
誰が得をするのか、と

28 :
確かに難しい
個々の数値をいじる分には簡単そうだけど、複合すると途端に難しくなる。
おれもマトリックスから現在の座標を割り出す方法が全くわからん。
熱意を持って調べれば、わかるようになるかもしれんけど

29 :
たびたびすいません
>>24 のスクリプトですがリンク画像と埋め込み画像では挙動が違いますね?
埋め込み画像だと天地がひっくり返ってしまいます
調べた結果「mvalue_d」を「1.0」にすればいいようです
ということは「mvalue_c」も何かあるかもしれませんが、値がゼロなので未解決です
あと位置がズレてしまう件はtx,tyをうまく使えば解決出来そうですが難しそうですね
ホントに熱意を持って調べないと、わかりませんw

30 :
<チラ裏>なんか10.6にしてからSystem Eventsのスクリプトの反応が悪くなったなあ</チラ裏>

31 :
なぜ tell チラ裏 to で書かない

32 :
そういえばなんでも無いプロパティの取得なのに、
2分かかってタイムアウトする事があるなあ
あと一息にコード書くと何故かそんなUI Elementは無いってなエラーが出て、
一旦application processを呼ばないとダメな事があったり

33 :
やっぱりそうですか、うちもおかしいなと思った。
特にスクリプトメニューから実行すると反応が悪い。

34 :
AppleScriptによりシェルを起動し、シェル終了後にターミナルを終了させたいのですが、
以下のように書くとシェルの処理終了を待たずにターミナルを閉じようとしてしまいます。
tell application "Terminal"
do script "hoge.sh"
quit
end tell
これをシェルの終了を待ってからターミナルを終了させる良い方法はありませんか?
ちなみにもともとやりたいことはシェルの処理のみなので、
最初はAppleScriptを使用せずに単純にシェルファイルの拡張子を.commandと
変えてダブルクリックでやろうとしたのですが、この場合は処理終了後も
ターミナルが起動したままになってしまいます。
これを回避するためにAppleScriptを利用しようとしたところ、最初の問題がでてきてしまいました。
なので、もしAppleScriptを使用せずとも別の回避方法があれば
教えて頂けると助かります(少しスレ違いになってしまいますが…)。

35 :
ターミナルは使わなくてOKです。
do shell script "hoge.sh"
だけ。
注意点その他は
http://developer.apple.com/jp/technotes/tn2002/tn2065.html
を参照

36 :
>>35
返事遅れましてすいません、できました。ありがとうございました!

37 :
tell application "iTunes"
open "Macintosh HD:Users:myName:Movies:Test.mov"
end tell
でiTunesで動画を開くスクリプトを書きました。
しかしこれだと動画を開いてiTunesにコピーすると同時に、コピーされたファイルの再生もしてしまい現在再生中の曲が止まってしまいます。
再生せずにiTunesにファイルをコピーするようにするにはどうしたら良いでしょうか?
ちなみにAutomatorで、「ファイルを iTunes に読み込む」というのをやってみましたが、これだとムービーは読み込まれず
「Finder 項目を開く」でiTunesで開くように指定してやると、iTunesにコピーして再生という動作になってしまいました。
また、Finder上で動画を右クリックして「このアプリケションで開く」からiTunesを指定してやってもAutomatorと同じ動作で、コピーして再生という動作になってしまいました。

38 :
>>37
openのかわりにaddで

39 :
>>38
遅ればせながら、、
できました!ありがとうございます
もうちょい研究してプレイリスト指定とかチャレンジしていきたいと思います

40 :
指定フォルダ中のフォルダとファイルを参照するロジックの書き方を教えてください。

41 :
iTunesで、「#個のアップデートが利用可能」をクリックできなくて
iPhoneのアプリアップデートが上手くいきません。
どうすればいいでしょう??

42 :
>>40
every item of ふぉるだ
Finderの中でね

43 :
tell application "Terminal"
activate
if Terminal is front window then
close front window
end if
end tell
「ターミナルが前面にある時はターミナルを隠す」 をどう表現するかが
分かりません。どなたかご教授お願いします。

44 :
ググったらすぐ出てきた。
前面の意味と隠すの意味が違うかもしれんが。あとご教授はやめろとなん(ry
http://forums.macosxhints.com/archive/index.php/t-58912.html
tell application "System Events"
   set app_name to name of the first process whose frontmost is true
   
   if app_name is equal to "Terminal" then
      set visible of process "Terminal" to false
   end if
end tell

45 :
レスありがとう
でもエラーが出て実行できない…現在調査中

46 :
コピペじゃなくて全部手打ちにするとエラーもなく実行することが
できましたが望むような挙動ではありませんでした。自分が望む挙動は
スクリプトを実行するごとに「ターミナルが現れたり消えたりする」
というごく単純なものを作りたいです。

47 :
>>46
これをベースに可視かどうかで分岐処理したら?
ttp://piyocast.com/as/archives/108

48 :
>>46
do script [text] : The command to execute.
[in tab, window, or any] : The tab in which to execute the command
→ tab : The tab the command was executed in.
10.6ではこうなってるから、特定のWindowを指定して実行することはできるんだろう
あとは、自力でやってくれ

49 :
Xcode3.2でAppleScriptにGUIを付ける風なボタン押したらhello worldの
メッセージを出るやつ作ってみたがエラーばっかり
ちょー使えない

50 :
10.6からAppleScriptユーティリティってなくなった?

51 :
>>50
ASエディタの環境設定に機能統合された
/System/Library/CoreServicesに10.5時代の.appがあっても起動しない

52 :
>>49見て、Xcodeで初めてAppleScriptいじってみた@10.6.2 Xcode 3.2.1
AppleScriptObjCってのを通して操作するのね。
前少しやってみたPyObjCと同じ感じな記述なんだな。
実質的なメソッドはObjective-Cと同等っていう。
とりあえずボタン押してHello, World!をテキストフィールドに表示は出来た。
勘でいけるだろーとか思ったら、40分もかかってしまった…orz

53 :
俺も最近スノレパにして AppleScript Studio が無くなってたんでびっくりした。
AppleScriptObjCのドキュメントが全然無いのにも。

54 :
>>53
前者はいつものdefaults write(ryで復活できる
詳細はググって
言語ブリッジってどうも微妙なんだよな
アップルの態度次第でいつ消えるかわからんし(過去の歴史的に)
Javaとのブリッジとかさ

55 :
>>54
でも新規プロジェクトは作れないでしょ?

56 :
>>52
ほんとに?
Command /usr/bin/osacompile failed with exit code 1 のエラーばっかでるけどな

57 :
>>56
AppleScriptObjC使ってる?
最初ググってたら set contents of text field "textField" of 〜みたいな形で
テキストフィールドに値をセットするやり方が出てきたけど、
こういった感じで値をセットしようとしてない?
↓な感じで、Objective-CのsetStringValue呼ばないとダメっぽいよ。
textField's setStringValue_("Hello World")
とりあえずプロジェクトごとうpしたんで参考に。
http://www1.axfc.net/uploader/File/so/35417.zip
※MyObject.applescriptが該当処理

58 :
>>57
サンクス 参考になった
MainMenu.xibに書き込んでAppleScriptインスペクタから設定するわけじゃないのか
defaults writeの意味ないな

59 :
コンテクストメニューを表示させる、スクリプトを作るのは可能ですか?
AppleScriptでは、各項目の情報を扱えることはわかったのですが
コンテクストメニューそのものを表示させる方法がわかりませんでした。
またアプリケーションを探しまわったのですが、見つからずです。
なんでwindowsみたいにキーがないのよ〜
情報をお願いします。

60 :
日本語でおk

61 :
コンテクストメニューの出現をスクリプトで制御したいって話かと。
あとでユーティリティを使って特定キーに割り当てるつもりなんでしょう。
Windows用のキーボードには確かにそういうキーがあるね。

62 :
>>57
なるほどー
こういうやり方もあるのか。
俺はメインのコードで
 property theTextField : ""
とした後、IBのBindingsでいろいろ設定して
 set theTextField to "Hello, World!"
てやってた。
参考まで

http://www1.axfc.net/uploader/File/so/35453.zip

63 :
訂正。
 set theTextField to "Hello, World!"

 set my theTextField to "Hello, World!"
でした。
あと、メインのコードってのはもちろん "main.m" のことじゃなくて
"なんちゃらAppDelegate.applescript" のことね。
my の後に書くんだから"theTextField"って名前はうまくなかったかな…

64 :
>>59
Finder 限定でよければ、GUI スクリプティングを駆使して作ったことがあります。
http://homepage.mac.com/tkurita/scriptfactory/history/2009/06.xhtml#_20090601T232417
Windows みたいに、どんなアプリケーションでもというのは難しいかも。

65 :
GUI スクリプティングを勉強したいんだが
どうすればいいだろう

66 :
>>65
サンプルコードを読むのが一番

67 :
>>54
BridgeSupportはCocoa-Javaブリッジと違って仕様が公開されてる上に
たとえサポートがなくなっても後付けで簡単に追加できる。

68 :
>>65
tell application "System Events"
tell process "アプリケーション"
get UI elements
end tell
end tell
結果に出てきたUI elementsにtellしてさらにUI elementsをget
tell application "System Events"
tell process "アプリケーション"
tell window "ほにゃらら"
get UI elements
end tell
end tell
end tell
とか
tell application "System Events"
tell process "アプリケーション"
get UI elements of window "ほにゃらら"
end tell
end tell

69 :
>>65
http://www.macosxautomation.com/applescript/uiscripting/index.html

70 :
内包するUI elementsを探すには
UI elements of 対象
状態を取得するには
properties of 対象
properties of attributes of 対象
操作するには
click ボタンを押下
pick メニューを実行
select 行を選択
confirm テキストフィールドを編集
perform 定義されたアクションを実行
performで実行出来るアクションを調べるには
actions of 対象
キー入力するなら
keystroke 文字もしくは予約語
key code キーコード

71 :
>>65
http://developer.apple.com/mac/library/samplecode/UIElementInspector/index.html
これがあると便利だよ

72 :
勉強してみます
皆様ありがとうございます

73 :
http://prefabsoftware.com/uibrowser/
あとこれも

74 :
ちょっと教えてください
ファイル名などを指定する時に頭文字数文字だけで指定する事は可能ですか?
例えば「ABC△△△.jpg」の△が分からなくても指定できれば良いのです。
実際にはアプリケーションで使うパラメーターを指定します。
よろしくお願いします。

75 :
>>74
start with

76 :
start"s" with

77 :
ごめん誤爆った。
Java スレと勘違いしてた。

78 :
>>74
ちょっと状況がよく分からないんだけど、たとえば
tell application "Finder"
set theList to files whose name starts with "ABC"
end tell
でABCではじまるファイルの*リスト*が得られる。
もし1個しかないって決め打っていいなら、続けて
item 1 of theList
で、リストの最初のファイル(1個しかないならそれ)が得られる。

79 :
>>78
おいらだったら document file 1 にするかな

80 :
tell application "Finder"
every document file of entire contents of theFolder where name begins with "ABC"
end tell
theFolderはフォルダを変数にいれたもの
entire contentsはサブフォルダの下層も探してくれます

81 :
>>78
たしかにそのほうがいいですね。
手間なしに確実になる。

82 :
>>80
> entire contents
こんなの前からあったっけ?
これを知ってればもっと楽に……。

83 :
>>82
> entire contents
わりと昔からあった。でもバギーだったんで使いにくかった。

84 :
>>82
> entire contents
フォルダの中にフォルダがあったりして、File数が多いと時間がかなりかかりますよ
またファイルサーバ上だと認識しないことがありましたな
楽な部分もありますが、一長一短ですね

85 :
>>82-83
そうだったのか。
確かに時間かかるしバギーなのは困るな。
今までは下層のフォルダ内まで検索する時は
do shell script で find とか使ってたんだが
そのやり方を知ってる以上は無理して使うこともなさそうだね。

86 :
レスアンカー間違えた。
>>83-84でした。

87 :
>>85
Tanaka's osaxつかってたよ。
OS X 版でないかなあ。

88 :
おまいら自力で再帰処理書けないの?

89 :
osaxだと一行で済むからなぁ。
まあ、scriptobjectとか用意すればいいのかもしれんけど。

90 :
>>88
実行に時間がかかりすぎるでしょうが

91 :
環境:MacBook MacOS10.6 iCab4.7
iCabで表示したwebページのソースを取り出すのはどうしたらよいですか?
記憶ではOpenURLとGetSourceを使えばできたと思うのですが。
以前はMac mini MacOS10.4 iCab3.0でプログラム作ってたのですが、Mac miniが
壊れてしまい、自分で作ったソースも参考できなくなってしまって。
参考となるサイトを教えてもらえると嬉しいです。
iCabのアイコンをAppleScriptに放り込んで解説を表示してもGetSourceの
記述が見つからなくて悩んでいます。

92 :
あれ?規制だ。家のアドレスだめだな。いつも止まってるよ。サーバから。
>>91
ソースから何かするだったら curl(過去ログで検索するんだ) を使えば良いと思う。ブラウザ使う必要はないんではないかい?
どうしてもと言うのならダウンロードして見てみても良いかもなのだけど、snowで動くんかな?
私はこれ。誰かお願い。
Image Events1.1.3←snow leopard でImage Events1.1.2では奇麗に(特定のかな?IL)pdf を jpg に奇麗にレンダリング出来てたのが、見た目駄目な時がある。
駄目=文字に関して。アンチエイリアスがかかっていない、レンダリング解像度が低い(文字ががたがた)太る(一日3000kl食べた?)等。
再現はイラストレータCS2,3,4で作成。
テストした。safariで作ったpdfはOK、worksは今から試してみる、ためしてみた大丈夫、TextEditも。
イラストレータですかね。ILのテキストオブジェクト。そしてそのバックに色(平網、グラデーション)写真がないこと。再現する。
白で塗ったオブジェクト敷いてたら大丈夫だ。でも1.1.2とは微妙に違うな。
私の環境が駄目(10.6はこのMBPしかないんだ)もしくはImage Events1.1.3ではそれが普通かを知りたい、教えてほしい。
キャプチャ見せたいけど、アップローダってのがようわからんのだ。適当にテキストを打ったILファイルをつかって以下お願いできるか?
--IL CS2 以降で作った mytest.pdf ってのがデスクトップにある、として以下を10.5と10.6で実行、でjpgファイ作って(目で見て)くれないか?
set desktop_path to path to desktop as Unicode text
tell application "Image Events"
launch
set myImage to open (desktop_path & "mytest.pdf")
save myImage in file (desktop_path & "mytest.jpg") as JPEG
close myImage
end tell

93 :
iCabを4.7から3.0にしたらGetSourceでソースが取れました。
OSやAppleScriptの違いではないみたい。
いないと思うけど、同様の問題解決参考のため結果を書き込み。
>>92
勉強のためcurlも調べます。
いつまでも古いiCabが使えるとも限らないしね。
上の現象はイラストレータを持ってないのでお役に立てないです。

94 :
>>93
>iCabのアイコンをAppleScriptに放り込んで解説を表示
ちゃんと解説を読めば、「document」の要素に「source」があると
気付くと思うのだが…。
tell application "iCab"
get source of document 1
end tell
とりあえず、これで表示中のページのソースは持ってこれた。
環境はMacOS10.6.2 iCab4.7。

95 :
ありがとう、とても助かりました。
おかげさまでiCab4.7で目的が達成できます。
同じiCab4.7でも32bit版と64bit版では違うことがわかりました。
64bit版ではsource要素は解説に出てこず、存在しません。
32bit版ではsource要素が存在します。
32bit版をダウンロードし直して利用しました。
後から読む人の参考のために。

96 :
tell application "LightWayText"
tell document 1
set contents of selection to "俺用メモ"
end tell
end tell

97 :
do shell script でperlを使って文字の置換をしようと思い
下記のようにしたのですが、1バイト文字は置換できるのですが
2バイト文字では出来ません
修正点をご教示頂けると幸いです
併せて検索文字が半角スペースで始まっている場合の対処法も
お願いします
OSは10.4.11です
set TextName to "SJISテキストファイル"
set Find to "検索文字"
set Replace to "置換文字"
set Scptcmd to "perl -pi -e \"s/\"" & quoted form of Find & "\"/\"" & quoted form of Replace & "\"/gi\" " & quoted form of TextFile
do shell script Scptcmd

98 :
>>97
それはSJISのテキストを置換したいと?
そうなるとやっぱ文字コードの問題でしょう。
perl でそのまま扱えるのは多分 UTF-8 だけなんじゃないかな。
コードを変換するやり方があったと思うんだけど
難しくて覚えるのを諦めた……。
それと参考までに聞きたいんだけど、
>set Scptcmd to "perl -pi -e \"s/\"" & quoted form of Find & "\"/\"" & quoted form of Replace & "\"/gi\" " & quoted form of TextFile
この行は
set Scptcmd to "perl -pi -e 's/" & Find & "/" & Replace & "/gi' " & quoted form of TextFile
こうじゃだめなん?

99 :
perlは全く知らないけど文字コード変換ならiconvコマンドとか

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 削除依頼
・ 次のスレ
QuickTimeスレッド・Part22
大学生Macユーザー雑談スレ
【革命児】篠原修司を讃えるスレ【救世主】
「 mi 」を語るスレ その3