在 Windows 命令提示符 (CMD) 中, 如果路径中包含空格, 很容易引发命令执行错误。因此, 我们通常会采用以下几种方法来处理路径中的空格问题
方法 1: 用双引号包裹路径
对于包含空格的路径, 可以使用双引号来将路径括起来。这样 CMD 会将整个路径识别为一个整体。
"D:/Program Files/xx"
方法 2: 使用 DOS 8.3 命名规则 (短文件名)
在早期的 DOS 系统中, 不允许文件夹名称中带空格, 因此采用了 8 个字符命名规则 (8.3 格式)。这种格式为前 6 个字符加上 ~
符号和一个数字表示序列。例如
D:/Progra~1/xx
当 Progra~1
: 前 6 个字符加 ~
符号及数字 1
, 表示第一个匹配的文件夹。
多个文件夹具有相同的前 6 个字符时, 后缀数字顺序递增, 例如:
Program Files -> Progra~1
Progra file -> Progra~2
Progra zhang -> Progra~3
注意: 为了实现这样的缩写形式, 文件和文件夹必须已经存在。可以使用以下命令查看文件的 8.3 格式:
dir /x
关于 8.3 命名规则的更多细节
对于长文件名 (包含空格或超过 8 个字符), Windows 会为其生成一个符合 8.3 规则的短文件名, 以保持兼容性。这些规则如下:
- 生成短文件名: 取前 6 个字符, 略去空格, 再加
~
和数字1
。 - 处理冲突: 如果文件夹的前 6 个字符相同, 则递增数字表示不同的目录。
例如:
"Documents and Settings" -> DOCUME~1
"Local Settings" -> LOCALS~1
"Temporary Files" -> TEMPOR~1
如果前 6 个字符有重复:
Program Files -> Progra~1
Progra file -> Progra~2
Progra zhang -> Progra~3
方法 3: 使用 subst
命令映射虚拟磁盘
利用 subst
命令可以将包含空格的目录映射为一个虚拟磁盘, 这样就不必每次输入长路径。具体步骤如下:
-
映射虚拟磁盘:
该命令会将
C:\Documents and Settings\hopeshared
目录映射为 B 盘subst B: "C:\Documents and Settings\hopeshared"
-
删除虚拟磁盘:
subst B: /D
-
查看当前的虚拟磁盘映射
subst
使用 subst
命令的更多场景
-
虚拟软驱: 安装某些软件时需要从软盘开始, 但机器上没有软驱时, 可以使用
subst
来创建虚拟软驱subst A: C:\temp
然后将
A:
盘符加入Autoexec.bat
文件中, 即可在系统启动后将C:\temp
目录映射为A:
盘 -
隐藏软驱: 将一个目录属性设置为 “只读”、“隐藏”, 然后映射为软盘的盘符, 可以隐藏软盘的实际内容。
原文