目录名

前提

D盘里,Program Files目录下有个hello.exe,正确运行时输出“Hello world!”。
当没有任何处理时,命令被空格截断。

D:\>d:/Program Files/hello.exe
'd:/Program' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

方法一 使用双引号

在cmd中输入cd p 再按下Tab键自动补全(有些需要修改注册表才有自动补全功能)时,显示如下:

D:\>cd "Program Files"

于是,输入:

D:\>d:/"Program Files"/hello.exe
Hello world!

或者:

D:\>"d:/Program Files/hello.exe"
Hello world!

方法二 使用缩写

采用八个字符,由目录名前六个字符(不计空格),加上波浪线~和数字(1~4)组成。如果多于四个文件使用相同的前六个字符,则由目录名的前两个字符结合四个字符的散列码,加上波浪线~和数字1组成。
可以使用dir /x查看目录名缩写。

D:\>dir /x
 驱动器 D 中的卷是 软件
 卷的序列号是 000C-A10D

 D:\ 的目录

2016/01/20  10:28    <DIR>                       Cygwin64
2016/01/28  13:33    <DIR>          DOCUME~1     Documents
2016/01/28  17:11    <DIR>                       GitHub
2016/01/27  10:52    <DIR>                       MinGW
2016/01/27  21:41    <DIR>                       OpenCV
2016/01/30  19:01    <DIR>          PROGRA~2     Program Files
2016/01/28  19:48    <DIR>          PROGRA~1     Program Files (x86)
2016/01/23  11:31    <DIR>          WORKSP~1     workspace
               0 个文件              0 字节
               8 个目录 41,520,476,160 可用字节

所以就可以使用以下命令:

D:\>d:/progra~2/hello.exe
Hello world!

另外,数字的确定跟目录的新建时间有关,跟最后修改时间无关。最早新建的目录数字为1。

2013/12/31  13:09    <DIR>          计算机~1     计算机导论
2016/01/30  20:30    <DIR>          计算机~2     计算机平面设计
2015/12/29  21:43    <DIR>          计算机~4     计算机操作系统
2015/06/17  19:02    <DIR>          计算机~3     计算机组成原理与系统结构
2016/01/02  21:33    <DIR>          计65D1~1     计算机网络
2016/01/30  19:47    <DIR>          计E2A4~1     计算机计算机计算机

文件名

大部分与目录名相同,唯一不同的是大部分文件名有后缀,缩写时后缀取前三个字符。

D:\>dir /x "Program Files\test text*.*"
 驱动器 D 中的卷是 软件
 卷的序列号是 000C-A10D

 D:\Program Files 的目录

2016/01/30  20:19                 0 TESTTE~1.ABC test text.abcdefg
2016/01/30  20:25                13 TESTTE~1.TXT test text1.txt
2016/01/30  20:24                 0 TESTTE~2.TXT test text2.txt
2016/01/30  20:25                 0 TESTTE~3.TXT test text3.txt
               4 个文件             13 字节
               0 个目录 41,520,476,160 可用字节

subst

DOS命令,它的功能是以磁盘驱动器符代替路径名称,以使驱动器符与指定的子目录路径等效。如:

D:\>subst Z: d:/"Program Files"

D:\>z:/hello.exe
Hello world!

解除代替用subst /d,如:

D:\>subst /d z:

D:\>z:/hello.exe
系统找不到指定的驱动器。