知識ベース

SUBST

コンピューティングでは、 SUBSTは、DOS、IBM OS / 2、Microsoft Windows、およびReactOSオペレーティングシステム上のコマンドであり、物理ドライブおよび論理ドライブ上のパスを仮想ドライブとして置き換えます。

概要

MS-DOSでは、MS-DOS 3.1のリリースでSUBSTが追加されました。このコマンドは、CP / M-86 2.x、Personal CP / M-86 2.x、Concurrent DOS、Multiuser DOS、System Manager 7など、Digital Research起源のオペレーティングシステムのより一般的な概念であるフローティングドライブに似ています。 REAL / 32、DOS PlusおよびDR DOS(最大6.0)。 DR DOS 6.0には、SUBSTコマンドの実装が含まれています。このコマンドは、FreeDOSおよびPTS-DOSでも使用できます。 Windows SUBSTコマンドは、サポートされているバージョンのコマンドラインインタープリターcmd.exeで使用できます。 Windows NTでは、SUBSTはDefineDosDevice()を使用してディスクマッピングを作成します。

JOINはドライブ文字を取り、ディレクトリとして表示するため、JOINコマンドはSUBSTの「反対」です。

MS-DOS COMMAND.COMの一部のバージョンは、文書化されていない内部TRUENAMEコマンドをサポートします。このコマンドは、ファイルの「本当の名前」、つまりドライブ、パス、拡張子を持つ完全修飾名を表示できます。環境変数、またはSUBST、JOIN、ASSIGNファイルシステムマッピングを使用します。

構文

これは、パスをドライブ文字に関連付けるWindows XPのコマンド構文です。

SUBSTドライブ1:ドライブ2:
  • drive1: –パスを割り当てる仮想ドライブを指定します。
  • path –仮想ドライブに割り当てる物理ドライブとパスを指定します。
  • / D –置換された(仮想)ドライブを削除します。

パラメーターなしでSUBSTコマンドを使用すると、現在の仮想ドライブのリストが表示されます。

ドライブのマッピング

これは、たとえば、C:のルートをX:にマップするために、コマンドラインインターフェイスで次のコマンドが使用されることを意味します。

C:\> SUBST X:C:\

これを行うと、X:という新しいドライブがWindowsエクスプローラーのマイコンピューター仮想フォルダーの下に表示されます。

ドライブのマッピング解除

ドライブXのマッピングを解除するには、再度、コマンドプロンプトで次のコマンドを入力する必要があります。

C:\> SUBST X:/ D

カスタムラベル

この方法で作成されたドライブ文字にカスタムラベルを割り当てるには、Windows Explorer / MyのSUBSTドライブの名前を変更(ドライブ文字のコンテキストメニューから[名前の変更]を選択するか、F2キーを押します)コンピューター。

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ DriveIcons \ M \ DefaultLabel \

(デフォルト値)= ドライブラベル

「M」は、カスタムラベルを割り当てるドライブ文字を表します。

ただし、この方法でSUBSTドライブ用に作成されたラベルは、ホストドライブ/パーティションのラベルで上書きされます。カスタムラベルは、ホストドライブにラベルがない場合にのみ使用されます。その場合、次のことができます。

  1. ホストのドライブラベルを削除します。
  2. SUBSTドライブ文字の適切なレジストリキーを作成します。
  3. ホストドライブ文字の適切なレジストリキーを作成します(オプション、ホストドライブラベルオーバーライドの警告に対処)。
  4. SUBSTドライブを再作成して、適用されたラベルの変更を確認します。

さらに、LABELコマンドはラベル名を変更できます

LABEL Your Drive Letter>: "ラベル値"

再起動後も持続する

この方法でマップされたドライブ文字は、サービスのシステム起動時に利用できず、再起動後も保持されません。ただし、レジストリを変更すると、起動時にドライブ文字にパスを割り当てることができるため、システムサービスで使用でき、再起動後も保持されます。

次のキーに新しいレジストリエントリ「文字列値」を作成します。

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ DOSデバイス

名前は「X:」である必要があります。Xはドライブ文字です。

値は次の形式のパスである必要があります。

\ ?? \ C:\ some \ directory

または形式:

\ DosDevices \ C:\ some \ directory

または形式:

\ Device \ Mup \ 127.0.0.1 \ C $ \ some \ directory

必要な変更を行うためのツールが用意されています。

このテーマ別レジストリキーに関連するのは

HKEY_LOCAL_MACHINE \ SYSTEM \ MountedDevices

Unixシステムの/ etc / fstabと同様に、特定のハードディスクパーティションへのドライブ文字のマッピングを定義します。また、手動で編集することもできますが、その特定のインストール済みのWindowsオペレーティングシステムが「非アクティブ」であるときのみです。たとえば、現在「D:\ Windows」から起動している場合は、「C:\ Windows」フォルダーにインストールされているWindowsのHKEY_LOCAL_MACHINE \ SYSTEM \ MountedDevicesキーを次のように編集できます。行動:

  1. コマンドを実行:reg load hklm \ $ system C:\ WINDOWS \ system32 \ config \ system
  2. 実行コマンド:regedit.exe
  3. レジストリキーHKEY_LOCAL_MACHINE \ $ system \ MountedDevicesを編集します
    (C:\ WINDOWSにインストールされているWindowsインスタンスのHKEY_LOCAL_MACHINE \ SYSTEM \ MountedDevicesレジストリキーを表します)
  4. regedit.exeを閉じます
  5. コマンドを実行:reg unload hklm \ $ system(編集手順を完了するため)

再起動後も持続する他の方法

方法3が推奨されるアプローチですが、他のアプローチも同様に機能します。

方法1

バッチファイルを作成して組み込みのSUBSTコマンドを実行し、既存のマウントポイントの仮想ドライブ文字を作成して、ユーザーアカウントのスタートアップフォルダーに配置します。

以下に例を示します。

@ECHO off SUBST f:d:\ mount \ db SUBST g:d:\ mount \ log

変更を有効にするには、ユーザーがログオフしてから再度ログオンするか、サービスを再起動する必要があります。

方法2

レジストリを編集して、適切なRunレジストリキーを活用して、コンピューターの起動時またはユーザーログオン時に組み込みのsubstコマンドを実行します。これを行う最も簡単な方法は、レジストリファイル(.reg)を作成し、ファイルをダブルクリックして設定をレジストリにインポートすることです。

コンピューターのブート中に実行する例

REGEDIT4 "F Drive" = "SUBST f:d:\\ mount \\ db" "G Drive" = "SUBST g:d:\\ mount \\ log"

変更を有効にするには、コンピューターを再起動する必要があります。

ユーザーログオンの例

REGEDIT4 "F Drive" = "SUBST f:d:\\ mount \\ db" "G Drive" = "SUBST g:d:\\ mount \\ log"

変更を有効にするには、ユーザーはログオフして再度ログオンする必要があります。

方法3

レジストリを編集して、DOSデバイスのレジストリキーを活用して、すべてのユーザーの再起動で目的のマウントポイントへの仮想ドライブを作成します。これを行う最も簡単な方法は、レジストリファイル(.reg)を作成し、ファイルをダブルクリックして設定をレジストリにインポートすることです。

以下にレジストリファイルの例を示します。

REGEDIT4 "F:" = "\\ ?? \\ D:\\ Mount \\ db" "G:" = "\\ ?? \\ D:\\ Mount \\ log"

レジストリを構成した後、変更を有効にするにはコンピューターを再起動する必要があります。

制限事項

  • 物理層でディスクに作用するWindowsアクションは不可能です。
  • (少なくとも)新しいドライブ文字に存在するMicrosoft Windows XP SP2 autorun.infファイルは無視されるため、したがって、AutoRun / AutoPlayは、この方法で作成されたドライブ文字では機能しません。さらに、autorun.infを使用してこの方法で作成されたドライブ文字にカスタムアイコンまたはラベルを割り当てることはできません。 substで作成されたドライブ文字に割り当てられたカスタムラベルは、ソースドライブ/ボリュームにボリュームラベルが設定されていない場合にのみ表示されます(labelコマンドでチェックして設定します)。
  • Windows Vista以降、削除されたファイルはすぐに永久に削除され、ごみ箱に移動されません。 Windows Vistaより前(たとえば、Windows XP)、置換された「ディスク」のファイルは、削除されるとごみ箱に移動されました。
  • この方法で作成されたドライブ上のファイルまたはフォルダーには、異なるアクセス権があります。 Windowsインストーラーによって作成されたConfig.msiディレクトリに正しくアクセスできないため、ソフトウェアのインストールが正しく機能しない場合があります。実行中のユーザーには管理者権限がありますが、ログファイルに書き込むことはできません。