Windows路径含有带空格的目录/文件名的处理

来源:互联网 发布:c语言打开文件失败的 编辑:程序博客网 时间:2024/04/29 15:08

目录名

前提

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.exeHello 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>                       Cygwin642016/01/28  13:33    <DIR>          DOCUME~1     Documents2016/01/28  17:11    <DIR>                       GitHub2016/01/27  10:52    <DIR>                       MinGW2016/01/27  21:41    <DIR>                       OpenCV2016/01/30  19:01    <DIR>          PROGRA~2     Program Files2016/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.exeHello 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.abcdefg2016/01/30  20:25                13 TESTTE~1.TXT test text1.txt2016/01/30  20:24                 0 TESTTE~2.TXT test text2.txt2016/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.exeHello world!

解除代替用subst /d,如:

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

参考资料

  • Windows下文件名或目录的简写方法 - 云涛的博客
  • 微软官方文档 - 管理文件和目录
  • cmd窗口里输入带有空格的路径时命令不被识别,如何处理?
0 0
原创粉丝点击