●アップルスクリプト その4 (ルーチンのようなもの、小ネタ) [PR]NƂI50ھ:Fց􍡂ȂSĖŎԂ܂œI



その1 (web関連)その2その3 (iTunes関連)その4 (ルーチンのようなもの、小ネタ)

アップルスクリプトであれこれ使えそうなルーチン集です。
MacOSX 10.4.5の使用を前提にしています。
例によってエラー処理は適当です。あしからず。

■全角英数字を半角英数字に変換
■スクリーンショットに日時をつけて保存
■拡張子を除いたファイル名を取得

MacOSX10.3.xでインストールされるAppleScriptには、スクリプトをアプリケーション形式で保存すると日本語が通らないという
重大なバグがあります。アプリケーション形式で保存する場合は、以下の手順で日本語に対応させてください。

  (1) 保存時の「フォーマット」を「アプリケーションバンドル」に。
  (2) Finderで「Japanese.lproj」という名前の空フォルダを作っておく。
  (3) Finderで(1)で保存したアプリを選択し、
    情報を見る=>言語=>追加で、(2)のJapanese.lprojを選ぶ。
  (4) 情報を見る=>言語で、「Japanese」にチェックがついていることを確認。



■全角英数字を半角英数字に変換
全角英数字を半角英数字に変換します。
このスクリプトでは元の文字列をzentextという変数に入れ、全角、半角の変換用テーブルで比較・変換し、変換した文字列をhantextという変数に入れています。
zentable、hantableがそれぞれ全角、半角の変換用テーブル。これを応用すれば半角カナ全角カナ変換、ひらがなカタカナ変換なども作れます。これは一文字対応テーブルですが、テーブルの内容をリスト形式にすれば語単位での変換も可能になります。
テーブルに文字を追加・削除したいときは、全角半角それぞれの文字が対応する順番に注意して(一部の半角文字はエスケープ記号「\」を含んでいます)。
--set zentext to text returned of (display dialog "全角→半角" default answer "") --テスト用ダイアログ set zentext to "全角Text 1" --これは例。文字列は任意で。 set zentable to " !?#$¥%&@.,:;()[]{}/\_|^`〜’”+−<=>*0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" set hantable to " !?#$\¥%&@.,:;()[]{}/\\_|^`~'\"+-<=>*0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" set hantext to "" considering case repeat with x in zentext set y to 1 set convtext to x as string if convtext is in zentable then repeat with x in zentable if convtext contains (item y of zentable) then set convtext to (item y of hantable) as string exit repeat end if set y to y + 1 end repeat end if set hantext to hantext & convtext end repeat end considering hantext --半角に変換されたテキスト。


■スクリーンショットに年月日時分秒をつけて保存
do shell script "screencapture ~/Desktop/" & "ScreenShot-" & (do shell script "date +%Y%m%d%H%M%S") & ".png"


■拡張子を除いたファイル名を取得
tell application "Finder" set PathName to (choose file) --仮に set ExtName to name extension of PathName set PathName to POSIX path of PathName set FileName to (do shell script "basename -s ." & ExtName & " " & quoted form of PathName) end tell


トップページへ戻る

[PR]lŒ͉i̋LOʐ^:LOʐ^lCʐ^lʐ^