











皆さん、こんにちは。楽して働きたい人です。
楽して働きたいと言いつつ、大幅なシステムの刷新なんかがありまして、ちっともblogを更新出来ていませんでした。気がつけばもう夏です。
さて、今回は表題の通りMacからWindowsにNASのパスをコピーします。
Automatorの作成
普段筆者はMacを使用していないのでScreenshotがありませんが、まず
「Finder→アプリケーション→Automator.app」にてAutomatorを起動し、更に「新規作成」にて新しい「サービス」を作成します。
そして、
- 左側のメニューからファイルとフォルダを選択
- 中央メニューからファイルパスを取得を右側の空いているスペースへドラッグ
- 同じくユーティリティ→「シェルスクリプトを実行」を右側の空いている部分へドロップ
- 「シェルスクリプトを実行」にて、シェルは「/bin/bash/」を選択
シェルスクリプトには
echo "$@" | sed 's/\/Volumes/\\\\NAS/g' | sed 's/\//\\/g' | iconv -f UTF8-MAC -t UTF-8
を入力します(コピペでOK)。また、「NAS」となっている部分は、それぞれの環境のNASの名前に置き換えてください。
最後に、
- ユーティリティー→クリップボードにコピーを空いている場所にドロップ
分かりやすい名前を付けて保存します。
これで、ファイルやフォルダを右クリックすると、作成したAutomatorがメニューに表示され、変換したパスをクリップボードにコピーすることができます。
何をしているか?
同じようなスクリプトは世の中に結構出回っていますが、実は日本語のファイル名で濁点や半濁点が入っていると上手く動作しないものが多いです。
というのも、Macはその他のWindowsやUnixなどとは違い、同じ文字コード(UTF-8)を使っているように見えても、少し違った文字コードを使用しているからです。
具体的には、日本語の濁点や半濁点を1文字として扱うのが代表的な例です(「です」であれば「て゛す」と内部的に処理される)。
そのため、NASのファイル名を単純にコピーしてしまうとこの部分がおかしくなってしまうので、UTF-8 Macから通常のUTF-8に文字コードを変換するソースを追加しています。
終わりに
昔からネットワークキッズだったような筆者のように、90年代後半から2000年代初頭頃からインターネットに慣れ親しんでいる方は、ファイル名やフォルダ名に日本語名を使うことに抵抗がある方は多いのではないでしょうか? まして、それがネットワーク上に流すものとなれば余計に、という。
今回の件もまさにそれで、出来れば日本語のファイル名を使わないで欲しいとお願いしたいところですが、ブラウザのアドレス欄すら気を利かせてエンコードされた2bytes文字をデコードして表示するようなこのご時世、ユーザーになかなかそんなことは言えないというのが実情でしょう。
似たような状況で困っている方に、このコードで少しでも手間が省ければ幸いです。
それでは、今回はここまで。
追伸:なお、この記事の初稿は今年の1月末頃。筆者のNAS周りの泥沼はまだまだ始まったばかりだったりします。












1件のフィードバック