2013年3月6日水曜日

Macで取得したファイルパスをWindows形式に変換する

Windows環境の中Macだけで仕事をしようとすると、 頻繁に困ることがあります。
それは、共有サーバに置いたファイルパスのやりとりです。

Macでは/で区切られているのに、Windowsでは区切りの記号は\で、しかも文字コードも微妙に変わってるらしい・・・。
というわけで、ファイルの置き場所を伝えるのに苦労して(というか工夫しようとしてもどうにもならないので、迷惑をかけて)いました。

これがautomatorを使えば解決するらしいと聞いて同僚のエンジニアさんに相談したところ、MacのパスをWindows形式に変換するプログラムを数分で書いてくれました!感激!
もったいないので共有します。


■手順

1. automator.appを立ち上げ、「サービス」を選ぶ














2. 基本の設定をする










「ファイルまたはフォルダ」を受け取り、対象を「すべてのアプリケーション」とします。


3. 「Apple Scriptを実行」を選び、コードを書く











左の列から「Apple Scriptを実行」というのを見つけてきて、ドラッグアンドドロップします。
もともと入っているコードを消し、下記のコードを上書きします。

-------------
on run {input, parameters}

tell application "Finder"
set sel to the selection as text
set the clipboard to POSIX path of sel
end tell

return input
end run

------------- 


4. 「シェルスクリプトを実行」を選び、コードを書く










次は「シェルスクリプトを実行」というのを見つけてきて、ドラッグアンドドロップします。
同様に、下記のコードを上書きします。

-------------
ARGV.each do |f|
puts "\\" + f.gsub("/", "\\").sub("Volumes", "xxx.xxx.x.x")
end
 
-------------
※"xxx.xxx.x.x"を共有フォルダのパス名に置き換えます。
※引渡し方法は「引数として」を選択します。 


5. 「シェルスクリプトを実行」を選び、コードを書く(2つ目)












もうひとつ、同じものを選んでドラッグアンドドロップします。
2つ目は下記のコードを上書きします。
-------------
echo "$1" | iconv -f UTF-8-MAC -t UTF-8
-------------
※ここでも引渡し方法は「引数として」を選択します。

6.  「クリップボードにコピー」を選ぶ
最後はドラッグアンドドロップするだけです。 



 
7. 保存する

適当な名前をつけて保存してください。
ここでは「Pathコピー」としてみました。



■使い方

使うときはどうするかと。

パスを取得したいフォルダをダブルタップしてみると、下の方に「サービス」または先程付けた名前が出ていると思います。これを選べばOKです。














※画像には過去の失敗作の名前も出ていますが気にしません。※消し方が分からな(ry

これでコピー完了。
あとは好きなところに貼りつければすぐに使えると思います。



■所感

この便利なよのなかで、こんなによくありそうな課題がアプリとかでさくっと解決できないことに驚きました。あるかもしれないのですが、軽くぐぐっただけでは出てこなかった。。。

そしてなにより、プログラマさんってすごいなあと単純に思いました。
いいなあ。



以上、私のブログおそらく最初で最後となるプログラミング系の稿でした。 



----------------------
※2013/3/24 追記
逆(Windows形式のパスをmacで開く)は、下記サイトの通りに設定すればできました。
多謝!

MacのAutomatorを使ってWindowsのファイルパスを変換しつつFinderで開く方法



0 件のコメント:

コメントを投稿