仮想ドライブマウントツール
概要
仮想ドライブは、特定のフォルダ等を一時的にドライブ扱いにする機能です。具体的に例を挙げると「D:\sozai\photo」を「P:」というドライブに割り当てしたりできます。こうすると「D:\sozai\photo\p001.jpg」を呼び出す際に「P:\p001.jpg」と指定すれば良くなります。
これの何が便利なのかと言うと、以下のようなメリットが考えられます。
- ファイルパスが短くなる
- ファイルの置き場所を変えてもパスが維持できる
- 同一パスにあるファイル/フォルダを入れ替えられる
じゃあ具体的に何の役に立つかというと、素材ファイルなどを利用する編集ソフトなどで作業がしやすくなります。動画編集ソフトや写真現像ソフトなどです。
こういったソフトを使っている人であれば、上記のメリットを見ればピンと来る人も多いんじゃないかと思います。
高度なソフトではソフト自体に上記のメリットを得るための機能がついてる場合がありますが、フリーソフトだと割りとなかったりしますね。
各メリットについて
パスが短くなる
パスの入力がしやすくなったり、入力されてるパスを確認しやすくなったりというのがメリットです。
「フォルダに2バイト文字を入れたいが、ソフトが2バイト文字を受け付けない」みたいなのを回避するのにも使えたりします。
ファイルの場所を変えてもパスが維持できる
ファイルの置き場所を変える事ってたまにありますが、これをやった時に「設定してるパスを全部直さないといけない」とかなると大変です。フォルダ名を変えただけなのに色々修正しないと……みたいな事態を避けられます。
例えば「D:\sozai\photo\p001.jpg」のフォルダ名を変えて「D:\sozai\image\p001.jpg」にした場合に、photoフォルダをP:という仮想ドライブにして設定していた場合は「P:\p001.jpg」というファイルパスは同じままに維持できます。
同一パスにあるファイル/フォルダを入れ替えられる
これは「素材フォルダのパス」を指定できる場合に、素材フォルダそのものを入れ替えて使いたい… みたいなケースで役立ちます。
例えば「D:\sozai_1」と「D:\sozai_2」みたいにフォルダが分かれていて、それぞれ全く別の編集で使う素材が入っている。これを切り替えて使いたい…… みたいな場合に、ソフトで「D:\sozai」を指定して、手動でsozai_1 → sozai みたいにリネームして対応… といった対応もありえますが、仮想ドライブを使用すればソフトでは「P:」を指定しておいて、ソフト起動前に sozai_1→P: sozai_2→P: みたいに割り当てを変更すればOKです。
割り当てのやり方
仮想ドライブの割り当ては、Windowsコマンドの「subst」を使用します。使い方はググってください。
毎回手動で割り当てなんてしていたら面倒なので、BATファイルやScriptにしておきましょう。
サンプルScript
以下に私が使ってるScriptをシンプル化した物を紹介します。
このプログラムは、実行すると特定フォルダを仮想ドライブに割り当てした後でソフトを起動し、ソフトが終了すると自動で仮想ドライブの割り当てを解除します。
メモ帳か何かに下記コードを貼り付けて、保存する際に拡張子を「.js」にしてください。ファイル名は自由です。
下記コードの「DRIVE」に割り当てする仮想ドライブレター、「FOLDER」に割り当てするフォルダパス、「PROGRAM」に起動するプログラムのパスを記入してください。
※パスを記入する際に「\」は「\\」と二重にしてください(言語的な制約)。
DRIVE = "V:"; FOLDER = "D:\\Documents"; PROGRAM = "C:\\Program Files\\7-Zip\\7zFM.exe"; WSS = new ActiveXObject("WScript.Shell"); WSS.Run( "cmd /c subst "+ DRIVE +' "'+ FOLDER +'"' , 0, true ); WSH.Sleep(500); WSS.Run( '"'+PROGRAM+'"', 1, true ); WSS.Run( "cmd /c subst "+ DRIVE +" /D", 0, true );
実際には既にマウントされている場合に確認メッセージを出してマウント解除する機能や二重マウントの防止など色々な機能を足した形で使っています。
上記サンプルだとエラー対処も何もしていないので、そのまま使うのはあまり良くないかもしれません。