首页/系统/Windows 运维速查/subst 映射虚拟盘符
CMD 常用命令74 条

subst 映射虚拟盘符

把深层目录映射成盘符(如 W:),解决路径过长或需要盘符的场景;重启后失效。

Windows 运维速查系统更新于 2026-10-13

subst 是什么

subst 把本机某个深层目录映射成一个盘符,命令行、脚本和只认盘符的老程序就能用短路径访问它。最典型的用途是绕开路径过长(超过 260 字符)导致解压、编译失败的问题。映射只存在于当前登录会话,重启即失效,而且运行在 Session 0 的系统服务一般看不到这些虚拟盘符,所以它属于临时手段而非长期方案。

基本信息

适用平台Windows CMD / PowerShell
建立映射subst 盘符: 目录
查看现有subst(不带参数)
解除映射subst 盘符: /d
生效范围当前登录会话,重启后失效

典型使用场景

  • 路径过长导致解压、编译失败时,把项目根映射成 W: 压缩路径前缀
  • 老程序对 UNC 网络路径不友好,先造一个本地盘符再运行
  • 团队统一工作盘符,脚本里的路径更短更稳定
  • 把多层目录下的日志集中映射到 L:,排障时少敲长路径
  • 同一登录会话下多个命令行窗口复用同一个短路径
  • 临时把只读介质上的目录挂成盘符,方便对照比对

常用示例

常用示例
subst                                                REM 列出当前所有映射
subst W: D:\Workspace\client-a\very-deep-project    REM 建立映射
pushd W:\                                           REM 切换到虚拟盘工作
subst W: /d                                          REM 用完解除映射
REM 需要开机自动建立:在登录触发的计划任务里执行同一行
REM 目录不存在时 subst 报 Invalid parameter,先核对路径拼写

可见性对照

使用场景能否看到映射说明
当前及新开的命令行窗口可见同一登录会话内共享
Windows 服务(Session 0)通常不可见不要给服务配置 subst 盘符
重启之后失效需要重新建立映射
同机其他登录用户不可见映射按会话隔离
需要长期、全机器可用的目录映射,优先用 mklink /J 建立目录联接,或用共享加 net use 映射网络驱动器;subst 的定位是会话级临时手段。
subst 不复制数据也不占空间,只是给目录起个别名;删除映射用 /d,直接对虚拟盘执行格式化会波及背后的真实目录,务必看清盘符再动手。

易错点

  • 脚本依赖 subst 盘符却没有先自建:重启或换机器后直接报路径不存在,脚本开头应显式建立一次
  • 把 subst 盘符配给 Windows 服务:服务在 Session 0 看不到该盘符,表现为启动失败或找不到目录
  • 误以为它彻底解决长路径:只缩短了前缀,UNC 路径与部分老 API 仍受字符数限制
  • 对虚拟盘符执行磁盘操作(格式化、调整分区)会作用到真实目录所在卷

数据来源与参考

  • Microsoft Learn:subst 命令

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌