2012年10月14日日曜日

Windowsファイル共有のファイルパス名をWindow形式に変換する

会社でもMacを使っているのですが、ファイルサーバはNASによるSMB共有(Windowsファイル共有)になっています。
普通に使っている分にはそれほど困らないのですが、Windowsを使っている人が大部分なので、ファイルの保存場所を連絡するとき等に、少し面倒くさいことがあります。

Mac OS Xでは、ファイルのパス表記は、
/Volumes/Server/somefolder/some.file   (Unix形式パス名)
になりますね。スラッシュの代わりにコロンで区切ったMac OS形式もありますけど。
一方Windowsでは、上の例ですと
\\Server\\somefolder\some.file
となります。
WindowsユーザにUnix形式のパス名を教えても、アクセス出来ないと言われますので、Windows形式で連絡するのが親切かなと思います。
よくやるのは、Unix形式のパス名をメーラにコピー・ペーストして修正する方法です。
たまに、Windowsマシンも持っているのでそちらから入って同じ場所をアクセスして連絡することもあります。どちらにしろ度々あると面倒になってきます。

そこで現在は、以下のようにしています。少しはましになったかなというところです。

まず、準備です。
(1) Automatorでシェルスクリプトを実行を選んで次の行を入力します。(1行です)

echo "$@" | iconv -f UTF-8-MAC -t UTF-8 | sed -e 's/^\/Volumes/\//' -e 's/\//\\/g' | pbcopy

以前の記事の「Automatorでシェルスクリプトを実行する」も参考にしてください。
iconvコマンドでは、UTF-8文字コードをMacで使われている形式からWindowsなどで使われている形式に変換しています。これをしないとカナの濁音記号などが別の文字になったりします。
sedコマンドでは、先頭のVolumesを削除して、スラッシュをバックスラッシュに変換しています。
pbcopyはクリップボードに文字列をコピーします。別アプリケーションでペーストして使えるようになります。
(2) このAutomatorのワークフローをアプリケーションとして保存します。例えば、towinpath.appのような名前にします。
以上で準備は終わりです。

次に使い方ですが、以下のようになります。
(3) Finderで連絡したい共有サーバのファイルやフォルダを選択します。
(4) Quicksilverを使う場合、
    command + esc キーで(3)のファイルが選択された状態でQuicksilverを開きます。
    2ndペインに移って、open with... Actionを開きます。私の場合は、owで出てきます。
    3rdペインに移って、先ほどのAutomatorアプリケーション名(towinpath)を入れてリター
    ンします。

    Quicksilverを使わない場合は、(3)のファイルを(2)のtowinpath.appにドラッグアンドド
    ロップします。
(5) この状態で、クリップボードにWindows用パス名がコピーされた状態になっています。後は、例えばメーラ上でペーストするなりして連絡すればOKです。


0 件のコメント:

コメントを投稿