図版の値段の管理や,InDesignのデータ結合用データの作成に表計算ソフトを使うことがよくあります。
その場合以下のように,パスの文字列と必要な情報を並べることになります。
@filepath | rank | price |
---|---|---|
~/Desktop/myFolder/図版1.ai | A | 12000 |
~/Desktop/myFolder/図版2.ai | B | 8000 |
ただこのやりかただと,ファイルのプレビューが見られません。「図版1ってどんなのだっけ?」って思いますよね。
そこで今回はパス文字列の本体ファイルをQuick LookするAppleScriptを紹介します。
ついでなのでQuick Look以外に, Finder で表示と Finder で開くも一緒にどうぞ。
今回はAutomatorサービス版と,Keyboard Maestro版を用意しました。
Automatorはサービスが発動するまでにちょっと間があるので,持っているならKeyboard Maestro版が便利です。
好きなほうをダウンロードし,使えるようにしておいてください。
sttk3-path-Automator.zip
sttk3-path-KeyboardMaestro.zip
使いかた
まずパスの文字そのものか,文字を格納しているセルを選択します。
対応しているパス形式は以下のものです。
- /Users/sttk3/Desktop/図版1.ai のようなPOSIX path(絶対パス)
- ~/Desktop/図版1.ai のようなPOSIX path(相対パス)
- Macintosh HD:Users:sttk3:Desktop:図版1.ai のようなHFS path
選択に使うアプリケーションは表計算ソフトに限らず,何でもかまいません。ただcommand+cのショートカットでコピーして文字を取得するので,そのキーでコピーできる環境にしておく必要があります。
そして,その状態でスクリプトを実行するとQuick Lookが発動します。
見た目が確認できました!
同じように[Finder で表示]ならそのファイルがFinderのウインドウで選択され,[Finder で開く]ならそのファイルがFinderでダブルクリックされたときのように開きます。
これでまた少し仕事が速くなりました。今日もさっさと仕事を切り上げて好きなことをしましょう!
コードはこちら
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
on run set delay_value to 0.2 -- 現在選択中のテキストを取得 set orig_clipboard to the clipboard set orig_text to orig_clipboard as text delay delay_value tell application "System Events" to keystroke "c" using command down delay delay_value set current_clipboard to the clipboard as text -- 選択がなければ終了 if (current_clipboard is orig_text) then my exit_process(orig_clipboard) if (current_clipboard is "") then my exit_process(orig_clipboard) -- qlmanageに渡す引数を生成 set target_path_list to my convert_path(my path_list(current_clipboard), "p") if (target_path_list is {}) then my exit_process(orig_clipboard) set argv to my do_join(" ", target_path_list) -- クリップボードを元に戻す set the clipboard to orig_clipboard -- Quicklookを実行 ignoring application responses do shell script (("qlmanage -p " & argv) as text) end ignoring end run on exit_process(orig_clipboard) set the clipboard to orig_clipboard error number -128 end exit_process -- 余計な空白文字は削除し,相対パスは絶対パスに変換 on path_list(str) set com to "echo " & quoted form of str & " | tr '\\r' '\\n' | ruby -Ku -e \" ARGF.each {|line| temp_line = line.strip if /\\//.match(temp_line) then puts(File.expand_path(temp_line)) elsif /:/.match(temp_line) then puts(temp_line) end } \"" return do shell script com end path_list -- パスの形式を変換し,配列にして返す -- p : Quoted POSIX path string -- h : HFS path string -- a : Alias on convert_path(str, mode_flg) set res to {} set temp_list to every paragraph of str if (mode_flg is "p") then -- POSIX path repeat with a_item in temp_list try if (a_item starts with "/") then (POSIX file a_item) as alias -- 存在確認 set end of res to quoted form of a_item else set end of res to quoted form of (POSIX path of (a_item as alias)) end if end try end repeat else if (mode_flg is "h") then -- HFS path repeat with a_item in temp_list try if (a_item starts with "/") then set end of res to ((POSIX file a_item) as alias) as text else set end of res to (a_item as alias) as text end if end try end repeat else if (mode_flg is "a") then -- alias repeat with a_item in temp_list try if (a_item starts with "/") then set end of res to (POSIX file a_item) as alias else set end of res to a_item as alias end if end try end repeat end if return res end convert_path -- Array.join on do_join(delim, orig_list) set orig_delim to text item delimiters of AppleScript try set text item delimiters of AppleScript to delim set new_str to orig_list as text set text item delimiters of AppleScript to orig_delim on error set text item delimiters of AppleScript to orig_delim end try return new_str end do_join |
このサイトで配布しているスクリプトやその他のファイルを,無断で転載・配布・販売することを禁じます。
それらの使用により生じたあらゆる損害について,私どもは責任を負いません。
スクリプトやファイルのダウンロードを行った時点で,上記の規定に同意したとみなします。