subst - フォルダをドライブに割り当て
にメンテナンス済み
目次
substコマンドは、フォルダを別のドライブ文字(仮想ドライブ)として割り当てるコマンドです。
たとえば C:\Projects\MyApp\src を X: ドライブとして扱えるようになり、深い階層のフォルダへ短いパスでアクセスできます。
substコマンドの基本構文
subst [<ドライブ>: <パス>]
subst <ドライブ>: /d
| 要素 | 説明 |
|---|---|
<ドライブ>: | 割り当てるドライブ文字(例:X:) |
<パス> | 仮想ドライブとして割り当てるローカルのフォルダ |
/d | 割り当てを解除する |
引数なしで実行すると、現在の割り当て一覧を表示します。
基本的な使い方
フォルダをドライブに割り当てる
subst X: C:\Projects\MyApp\src
成功しても、メッセージは何も表示されません。割り当て後は、X: に切り替えるだけでそのフォルダの中身を操作できます。
X:
dir
割り当てを確認する
引数なしでsubstを実行します。
- □ ×
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
C:\users\user>subst
X:: => C:\Projects\MyApp\src
C:\users\user>
割り当てを解除する
subst X: /d
解除されるのは割り当てだけで、元のフォルダやファイルは削除されません。
どんなときに使うか
- パスが長すぎてコマンドが書きにくい、または長いパスで動作しないツールを使うとき
- ドライブ文字を決め打ちしている古いアプリケーションやスクリプトを動かすとき
- 作業用フォルダを短いパスで開きたいとき
注意点
再起動やサインアウトで割り当てが消える
substの割り当ては永続的ではありません。サインアウトや再起動をすると解除されます。
毎回必要な場合は、substコマンドを書いたバッチファイルをスタートアップフォルダ(shell:startup)に置くか、タスクスケジューラの「ユーザーがログオンしているときのみ実行」するログオン時タスクとして登録してください(ログオンの有無にかかわらず実行するタスクは別のセッションで動くため、割り当てが見えません)。
- すでに使用中のドライブ文字は指定できません。すでに
substで割り当て済みの文字ならDrive already SUBSTed、物理ドライブやネットワークドライブの文字ならInvalid parameterのエラーになります。ターゲットのフォルダも存在している必要があります。 - ターゲットに指定できるのはローカルのフォルダです。
\\server\shareのような UNC パスは指定できません。ネットワークの共有はnet useで割り当ててください。 - 割り当てはサインインしたユーザーのセッションごとに管理されます。管理者として実行したコマンドプロンプトと通常のコマンドプロンプトは別々のドライブ文字の一覧を使うため、互いの割り当てが見えないことがあります。管理者権限が必要なツールで使う場合は、そのコマンドプロンプトの中で
substを実行してください。 - 割り当てを解除する前に、その仮想ドライブを開いているウィンドウやアプリケーションを閉じておくと安全です。
mklink・net use との使い分け
フォルダを別のフォルダの下に見せたいときはmklink、ネットワーク共有にドライブ文字を付けたいときはnet use、ローカルのフォルダに短いドライブ文字を付けたいときはsubstが向いています。
バッチファイルでの利用例
すでに割り当てられている場合にエラーにならないよう、先に解除してから割り当てる例です。
@echo off
subst X: /d >nul 2>&1
subst X: C:\Projects\MyApp\src
ドライブ文字が未使用なら/dはエラーになりますが、>nul 2>&1で出力を捨てているため問題ありません。ただし、X: が実際のドライブの場合は/dもsubstも失敗します(substのエラーは表示されます)。
関連記事
練習問題
#コマンドプロンプト
#バッチファイル
#subst
#コマンドライン
#コマンド