情報科学屋さんを目指す人のメモ

方法・手順・解説を書き残すブログ。私と同じことを繰り返さずに済むように。

Dropbox専用ドライブを作ってどのPCからでも同じフルパスを使えるようにする方法メモ

Dropbox (14) Windows (263) Windows 7 (57) Windows Vista (7)

DropboxやSugarSync専用ドライブを作成する方法についてメモ。たとえば「Sドライブ」を「Dropbox専用ドライブ」にすることで、ハードウェア環境の異なるどのPCからでも、同じフルパスで同じファイルにアクセスできるようになります。アプリケーション設定やアプリケーションを丸ごとを共有する場合に便利です。

どうせDropboxを使うなら、専用の"仮想ドライブ"を使うことをおすすめします

※作業対象のOSはWindowsです。

問題例

たとえば、DropboxフォルダがマシンAでは「C:\Users\did2\Dropbox」に、マシンBでは「G:\Dropbox」に設定されていたとします。

ここで設定ファイルを共有するときのことを考えてみます。すると、マシンAとマシンBでは設定ファイルの置いてあるフルパスが異なるため、面倒だったり、問題が発生します(体験談:Eclipse、ATOKやPuTTYにて)。特に、設定ファイルのフルパスを指定している設定ファイルやアプリケーション本体まで共有しようとすると、かなり面倒なことになります。

Dropboxフォルダ内のアプリケーションが必ず相対パスを使ってファイルを参照するなら問題ないのですが、そんなアプリケーションばかりではないですし、Dropboxフォルダをまたぐファイルの参照は結構面倒です。

対策

そこで今回は、「Dropbox専用の仮想ドライブを作る」ということをしてみます。

Dropboxフォルダを仮想ドライブにする

具体的には、「Dropboxフォルダ」を「Xドライブ」としてアクセスできるようにします。つまり、「C:\Users\did2\Dropbox」と書く代わりに「X:」と書けるようにするのです。これにより、あたかも「Xドライブ」というディスク丸ごと共有しているかのようになります

「Xドライブ」はハードウェア構成に関係なく作成できる仮想ドライブなので、すべてのPCでこの「Xドライブ」を作りさえすれば、すべてのPCで同じフルパスを使えるようになります。

仮想ドライブの作り方

Windows PCで仮想ドライブを作る方法は大きく分けて「スタートアップ時にsubstコマンドを実行する方法」と「レジストリを編集する方法」の二つがあります。これらについては「Windowsで特定のフォルダを仮想ドライブとしてマウントする方法」にて詳しく解説しているので、ここでは、Dropbox専用ドライブを作ることを意識して、書こうと思います。

A.substコマンドを使う方法

分かる人向けに書くと、「subst S: "(Dropboxフォルダ)"」というコマンドを実行することで、「(Dropboxフォルダ)」を「S:」ドライブとしてマウントできます。

これが全てなのですが、簡単にsubstコマンドを使う方法を用意したので紹介します。

簡単にsubstコマンドを使う

簡単に使うための.batファイルを用意したので、次の内容でdropbox-drive.batファイルを作り、共有しているフォルダ(Dropboxフォルダ、標準では"C:\Users\ユーザ名\Dropbox")に設置してダブルクリックで実行してください

echo subst S: "%~dp0." > dropbox-drive-mount.bat
echo subst S: /D > dropbox-drive-umount.bat

ダブルクリックで実行すると、同じフォルダに「dropbox-drive-mount.bat」と「dropbox-drive-umount.bat」の二つのファイルが作成されます。

そうしたら、「dropbox-drive-mount.bat」のほうをダブルクリックで実行してみてください。すると、「Sドライブ」が作成され、dropbox-drive.batを実行したフォルダが「Sドライブ」から見えるようになります。これで「Sドライブ」の完成です(dropbox-drive.batの「S」を「X」に書き換えることで、「Xドライブ」を作れます)。

しかし実は、この仮想ドライブは再起動すると消えてしまいます。そこで、「dropbox-drive-mount.bat」をスタートアップフォルダにコピーしてください。スタートアップフォルダは、Windows Vista/7の場合は「C:\Users\(ユーザ名)\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup」に、Windows XPの場合は「C:\Documents and Settings\(ユーザ名)\スタート メニュー\プログラム\スタートアップ」にあると思います。

すると、再起動するたびに.batが実行されてSドライブを作り直すので、実質消えないようになります(ちなみに、もうdropbox-drive.batや、その他の生成した.batファイルをDropboxフォルダから削除しても問題ありません)

もし、Sドライブを削除したくなったら、スタートアップフォルダに保存した.batを削除して、再起動するか、dropbox-drive-umount.batを実行して消去してください。ちなみに、dropbox-drive-umount.batの中身は単純に「subst S: /D」という仮想ドライブを削除するコマンドだけです。

生成される.batファイルはそのマシン専用なので、この作業をマシンの台数分だけ繰り返してください。

B.レジストリを使う方法

こちらのほうがおすすめですが、編集は気を付けて行ってください。詳細は「Windowsで特定のフォルダを仮想ドライブとしてマウントする方法」にあります。同じことの繰り返しになってしまうので、リンク先をお読みください。

Dropbox専用ドライブの完成

これで、今までDropboxフォルダを使っていたのと同じ要領で仮想ドライブを使えば、フルパス問題もだいたい解決できます。

これで、eclipseやputtyなどのアプリケーションを丸ごと共有するのがかなり楽になると思います。是非試してみてください。

おまけ:共有しているアプリケーションが共有したくない大きなファイルを出力するときは

こういう場合、しっかり設定まで共有するためには、ファイルの出力先は絶対パス・相対パスにかかわらず、「X:」ドライブの中になると思います。しかし、それが共有したくないほど大きなサイズになることはよくあることです(体験談:eclipseにて)。そこで、こういった場合は、「X:」ドライブに出力専用のフォルダを作り、Dropboxの設定(高度な設定>同期するフォルダを選択する)で、その出力専用のフォルダのチェックを外してしまえばOKです。すると、Xドライブにあるのに共有しないという設定を実現することができます。便利。

補足情報

substコマンドや.batに関する技術的な情報です。

%~dp0について

.batファイル中の「%~dp0」は.batファイルの存在している絶対パスを取得するためのキーワードですが、末尾に「\」というWindowsのフォルダ区切り文字がくっついてしまいます。単純に「subst S: "C:\Users\did2\Dropbox\」と実行してしまうと、「パスが見つかりません」と言われてしまいます。一方、「subst S: "C:\Users\did2\Dropbox」と「\」なしで実行すれば、成功します。そこで、「\」を消せばいいのかと思いがちですが、今回は「\」を消すのではなく「\.」とすることでフォルダを指定して解決しています。なので、「"%~dp0.%"」を間違えて「"%~dp0%"」としてしまうと、ちゃんとマウントできません。注意してください。

仮想ドライブ一覧の取得方法

substコマンドを引数なしで実行すると、現在マウント中の仮想ドライブの一覧が表示できます。うまくスクリプトが実行できていれば、

C:\Users\did2>subst
S:\: => C:\Users\did2\Dropbox

のように表示されるはずです。

コメント(1)

  1. かな
    2012年8月9日(木) 07:19

    仮想ドライブって、こうゆう使い方するものだったのね!!
    今まで、使い道分からなくてイミフな存在だったです(笑)

    今度、ドロップボックスとか共有系の設定する時、試してみますっ(>_<)!

新しいコメントを投稿