文章目录
前言
有很多同学可能不理解为什么文件路径 Program Files
可以写成 Progra~1
,那这里首先要了解一下文件名规范。
文件路径中的 Progra~1 实际上是 Progra m Files 的缩写形式。这是由于 Windows 操作系统中的文件系统使用了 DOS 命名约定,DOS 命名约定限制文件名的长度为 8 个字符,文件扩展名长度为 3 个字符,因此需要使用缩写来代替较长的文件名和目录名。
在 Windows 中,每个文件或目录都有一个短名称和一个长名称,其中短名称是缩写形式,而长名称是完整的文件名或目录名。在文件路径中使用短名称可以帮助缩短文件路径长度,提高文件操作的效率和速度。
因此,Progra~1 实际上是 Program Files 的短路径名称,可以在命令行、批处理文件或代码中使用。需要注意的是,不是所有的文件或目录都有短名称,有些文件或目录只有长名称,所以需要根据实际情况进行选择。
8.3格式
8.3格式通常指较旧的Windows操作系统或DOS的文件命名格式。
“8”是指文件名或目录名的主体部分小于等于8个字节;
“3”是指文件名的扩展名部分小于等于3个字节;
8.3文件名的有效字符不包括空格等特殊字符;
若不符合以上限制则会以"~“作延长名称如"Program Files"会变成"Progra~1”
若同一文件夹有相似的名称,末端的数值则会自动递增
8.3短文件名格式规范是DOS+FAT12/FAT16时代遗留下的老规矩,自从Windows95开始(其实据说从Windows for Groups 3.11开始),Windows就已经能支持长文件名,但是为了向前兼容,特别是文件系统兼容性,FAT文件系统均强制执行“为长文件名提供8.3兼容格式的短文件名”的特性。
因此你会看到,在FAT16/32文件系统上:
目录"program files"同时还拥有一个8.3规范的"PROGRA~1"短名称;
而文件"元素周期表.exe"也同时拥有一个"元素周~1.exe"的短名称。这有一点像类UNIX系统下的hardlink,一个对象拥有两个引用方式。
如:
vbs中 同一语句使用长名如下:
WshShell.Run """D:\Program Files\Notepad++\notepad++.exe """&name,1, false
使用8.3命名规则如下:
WshShell.Run "D:\Progra~1\Notepad++\notepad++.exe """&name,1, false
c:\progra~1 这种目录是在纯DOS下看到的,纯DOS使用8.3文件格式。
8.3格式文件命名规范
8.3格式介绍:文件名规范:8.3格式
文件夹(sub-directry)名称,以前是不允许带空白的,后来允许带空白,但由于有了空白,许多命令出现二义性,于是采用双引号括起来的办法。
例如:
以前想要访问:Documents and Settings,用 cd Documents and Settings 是行不通的,得采用双引号的方式:
cd " Documents and Settings "
但用到set PATH
时很麻烦,名字太长,双引号时常括错。于是采用8个字符缩写,即:写前六个有效字母(不计空格字符),另加波浪号和1,重名的就 ~ 2、~3,如此组成8位数。后来,这种方法成了规定。例如:
PROGRA~1 # 表示 Program Files
PROGRA~2 # 表示 Program Files (x86)
DOCUME~1 # 表示 "Documents and Settings"
LOCALS~1 # 表示 "Local Settings"
C:\progra~1 # 表示 "C:\program files"
注意略去空白,用了第二个词的字母,凑成六个,再加波浪号和1。
所以窗口下的 C:\program files
文件夹进入纯DOS看到的是 C:\progra~1
,这个被延续到WINDOWS中,也是因为地址太长才写成这样的。因为只能输入255个字符所以才写成这样。
% 这种有百分号的是电脑的相对地址写法。原来也是在DOS中使用的,现在在WINDOWS中一般没有任何使用的必要,只有在书中才使用,一般只是表示系统文件夹的。
%号表明环境变量要寻找的地址。
progra~1
是program files
的可选文件名,那么我如何来知道别的文件名的这种表示呢?
在dos年代,文件只是8个字符的长度,但是到了Windows的年代,为了和dos的兼容行,在超过了8个字符的文件名就只取前面的6个在最后两位加~1.
所以 document and settings
就变成 docume~1
了!!
具体详见:
Window高级编程指南的第14章
转载自:https://blog.csdn.net/u014727709/article/details/131196304
欢迎start,欢迎评论,欢迎指正