The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

介紹好用工具:subst ( 將任意目錄掛載成虛擬磁碟機 )

Subst 可以將本機任意目錄掛載成本機虛擬磁碟機,這是一個 Windows 系統內建的指令,所以幾乎每台電腦都有。當我跟其他人說這個工具時,通常得到的回應都是「這工具有什麼用?就算能掛載虛擬磁碟機也沒什麼了不起阿?有很實用嗎?」今天我就來說說比較實務的應用方式。

雖然這工具很容易使用,但我還是先說明用法吧:

SUBST 使用說明

建立路徑與磁碟機代號之間的關連。

SUBST [drive1: [drive2:]path]
SUBST drive1: /D

  drive1:        指定您要指定路徑的虛擬磁碟機。
  [drive2:]path  指定您要指定給虛擬磁碟機的實際磁碟
                 機與路徑。
  /D             刪除取代的 (虛擬的) 磁碟機。

鍵入 SUBST 而不加任何參數會顯示目前所有虛擬磁碟機的清單。

SUBST 使用範例

# 進入 D:\TEMP 目錄
D:\>cd temp
# 將目前目錄掛載(Mount)成 K: 磁碟機
D:\TEMP>subst k: .
# 列出目前透過 SUBST 指令掛載的磁碟機<->目錄對應清單
D:\TEMP>subst
K:\: => D:\TEMP
# 刪除透過 SUBST 指令掛載的 K: 虛擬磁碟機
D:\TEMP>subst k: /d
# 確認所有 SUBST 指令掛載的虛擬磁碟機已全數卸載(Unmount)
D:\TEMP>subst

其實我多年前知道 Subst 這個工具時也覺得很沒用,但後來我自己怎麼想最多也只能想到 Subst 最實際的用途應該是與「遠端桌面連線」相互搭配使用。

「遠端桌面連線」的設定畫面有個「本機資源」頁籤,裡面有個「本機裝置和資源」可設定將「本機磁碟機」掛載到遠端桌面中,我們時常用這個方式在本機電腦與遠端電腦之間傳遞檔案。

 「遠端桌面連線」的設定畫面有個「本機資源」頁籤,裡面有個「本機裝置和資源」可設定將「本機磁碟機」掛載到遠端桌面中

當你點選「詳細資料」時 (如上圖) 如果有勾選「磁碟機」時,就可以將所有本機磁碟機掛載到遠端電腦的中。

遠端桌面連線 => 當你點選「詳細資料」時 (如上圖) 如果有勾選「磁碟機」時,就可以將所有本機磁碟機掛載到遠端電腦的中。

而你也可以將設定另存新檔至目錄中,且副檔名為 *.rdp

遠端桌面連線 => 可以將設定另存新檔至目錄中

所以當連到遠端電腦的桌面後,就可以在我的電腦看到所有來自遠端桌面連線的磁碟。(如下圖示)

image

而在這些來自遠端桌面連線的磁碟也都有一組預設的 UNC 路徑,如果是 X: 磁碟機,在遠端桌面的 UNC 路徑就是:

\\tsclient\X

有了「已知」的 UNC 路徑後,就可以再搭配我之前寫過的一篇文章 設定「捷徑」的快速鍵與注意事項 技巧來設定快速鍵的,當登入遠端電腦後直接按下快速鍵即可快速開啟來自遠端桌面連線的磁碟

有用過這功能的人就知道,在來自遠端桌面連線的磁碟中瀏覽檔案是非常慢的,所以如果你要傳檔的路徑在 C:\Project\TEST\Website\App_Code\Helper\ 目錄的話,就很有可能需要先開啟檔案總管一步一步的瀏覽目錄進去,最後才複製檔案,但整個過程可能會花你兩分鐘!

最後,也是最重要的精華就是利用「批次檔」快速掛載磁碟後直接登入遠端電腦,並搭配快速鍵快速開啟目錄。

假設批次檔名稱為 MountThisFolderAndConnectToMyServer.bat

subst k: %CD%
mstsc "G:\RemoteDesktop\MyServer.rdp"
subst k: /d

之後只要將這個批次檔放到任意目錄,或放到 %PATH% 定義的目錄中,之後在任意目錄輸入 MountThisFolderAndConnectToMyServer.bat 就會先掛載目前目錄然後連到預存的遠端連線。

除此之外,我也想不到有任何有用的應用方式,也許有人可以分享不同的觀點?

相關連結