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のエラーは表示されます)。

関連記事

練習問題

練習問題

X: に割り当てたフォルダを仮想ドライブから解除するコマンドはどれでしょうか?

正しいものを 1 つ選んでください。

  1. subst X: /r
  2. subst X: /d
  3. del X:

練習問題

substで作成した仮想ドライブについて、正しい説明はどれでしょうか?

正しいものを 1 つ選んでください。

  1. 再起動しても割り当てが保持される
  2. 再起動やサインアウトで割り当てが解除される
  3. ネットワーク共有(UNC パス)を直接指定できる
#コマンドプロンプト #バッチファイル #subst #コマンドライン #コマンド