Programming Field

Subst - DOS コマンド一覧

スポンサーリンク

特定のディレクトリを新しく(仮想的な)ドライブとして割り当てます。

構文

subst[.exe] [<drive-letter>: [<exist-drive>:]<path>]
subst[.exe] <drive-letter>: /D
<drive-letter>
ドライブ文字を指定します。新しく作成する場合は既に存在するドライブ文字を指定することはできません。削除する場合はsubstによって作成されたドライブである必要があります。
[<exist-drive>:]<path>
新しいドライブのルートディレクトリにする既存のディレクトリを指定します。「<exist-drive>:」を指定しない場合は<path>が現在のドライブにあるものとして扱われます。この場合、相対パスを指定しても構いません。
[Windows 95以降?/NT系] ドライブとパスの代わりにネットワークドライブを指定することもできます。その場合、ネットワークドライブの割り当てとは別物として扱われます。
[MS-DOS, Windows 95/98/Me] このディレクトリがsubstされたドライブ上にある場合(<exist-drive>がsubstされたドライブの場合、または<exist-drive>を指定しなかった場合現在のドライブがsubstされたドライブの場合)は失敗します。
[Windows NT系?] このディレクトリがsubstされたドライブ(Xとします)上にある場合も成功します(新しいドライブをYとします)が、そのドライブ(X)に対するsubstが解除されると新しいドライブ(Y)のsubstは削除されませんがアクセスできない無効なドライブになります。
/D
<drive-letter>に対する割り当てを削除します。これ以降<drive-letter>のドライブへのアクセスはできなくなります。

パラメーターを何も指定しなかった場合は現在のsubstによるドライブの割り当てを表示します。

解説

このプログラムは既存のディレクトリを新たなドライブとして設定し、そのドライブにアクセスできるようにします。このドライブはOSレベルで設定されるため、プロンプト上だけでなく、エクスプローラーなど他のプログラムからも使用することができます。あるディレクトリ名が長い場合、パスを短くためにsubstを使うことができます。

ただし、substで割り当てられたドライブはあくまでも仮想的なものであるため、ドライブそのものに対して利用できる操作などが一部利用できない場合があります。また、利用できる場合でもFormatなどを実行すべきではありません。

[MS-DOS] MS-DOSからWindowsを起動しているときはWindows上からsubstを利用することはできません。

なお、コンピューターを再起動するとsubstの割り当てはすべて失われます。同じ割り当てを毎回利用したい場合はAUTOEXEC.BATやスタートアップなどに登録する必要があります。

[Windows 95以降?/NT系] ネットワーク上の共有フォルダーをSubstで割り当てた場合、このドライブはネットワークドライブとはなりません。ネットワークドライブとして割り当てるにはNetコマンドを使います。([Windows NT系] [拡張構文] この挙動は拡張機能が有効になっている場合のPushdの挙動とも異なります。)

※ 指定したネットワークパスにアクセスするために認証が必要な場合は、事前にNetコマンドなどで認証しておく必要があります。

サンプル1

subst W: D:\MyDir\Files\work

「D:\MyDir\Files\work」ディレクトリをルートディレクトリとした「Wドライブ」を作成します。以降、例えば「W:\sheet.xls」へのアクセスは「D:\MyDir\Files\work\sheet.xls」へのアクセスと同じものとして扱われます。

サンプル2

subst W: /D

サンプル1にあるような割り当てが行われている場合、Wドライブを削除します。なお、ドライブを削除しても割り当てに使われたディレクトリとその中身(サンプル1の場合「D:\MyDir\Files\work」ディレクトリとその中身)が失われることはありません。

サンプル3

subst W: \\fileserver\project1\backup

[Windows 95以降?/NT系/XP以降] ネットワーク上の「fileserver」コンピューターにある共有フォルダー「project1」内の「backup」フォルダーをルートディレクトリとしてWドライブを作成します。