最近一位朋友在安装 Matlab 的时候,由于 OEM 分区方式不合理,系统分区空间不足,而数据分区空间又过于充足,于是请我帮助她合并分区。在合并分区后为了保持之前的路径仍然能够正常访问,我准备实践一下之前就听说过的将目录映射到盘符的操作。
在 Windows 中有一个叫做 subst.exe
的程序,它可以将目录映射到盘符。用法如下: – subst.exe
列出当前所有的虚拟盘符 – subst.exe D: C:\data
将 C:\Data
映射到 D:
– subst.exe D: /D
删除虚拟盘符 D:
但 subst.exe
的映射仅在当前 session 有效,例如 UAC 提升的 shell 中无法访问在 UAC 提升之前建立的映射关系,同时让 subst.exe
开机启动的过程中,explorer.exe
建立图标缓存时也无法访问对应的图标导致图标空白。
经过查阅,在 psubst 的实现看到一个解决方法,抄录翻译如下:
建立一个 reg 文件,内容填充如下:
REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices]
"D:"=" ?? C: Data"
这里将 D:
换成需要的盘符,将 C: Data
换成对应的路径即可,注意在双引号中需要将 \
转义为
。然后将这个 reg 文件导入注册表即可实现。 也可以在注册表中前往 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices
手动建立。手动建立时不需要转义 \
。同时如果需要删除映射关系,也需要前往这里删除。
赞!👍
把文件夹设置共享,然后映射成网络驱动器。这个更简单。