在很久之前,大概是Win3.x的时候,Windows中的文件名是由不超过8个字符的主文件名,和不超过3个字符的扩展名组成。到了Windows 95的时候,这个长度被扩展成主文件名+扩展名不超过255个字符。为了保证兼容性,Windows提供了一种转换的方式: 8.3 命名规则。 这种转换使得一些老的应用程序在新的Windows平台上也可以使用,但它多多少少降低了系统的性能(文件索引之类)。
在现在流行的Windwos版本及其DOS环境中,有的默认开启了这个规则(例如:Window 7),有的默认没有开启(例如:Window 11)。
想知道自己的系统有没有开启这个功能,可以通过以下命令查询:
c:\>fsutil 8dot3name query [driver:]
query 表示查询
driver: 指定盘符。
如果功能被启用,会显示类似如下的信息:
NtfsDisable8dot3NameCreation 的注册表状态为默认值 2 (卷级别设置)。 基于以上的两个设置,在 c: 上启用 8dot3 名称创建。
如果在C盘上开启/关闭这个功能,则可使用以下命令:
c:\>fsutil 8dot3name set driver: n
set表示设置
driver: 指定盘符
n为1表示禁用,n为0表示启用。如果不写盘符,则是全局设置,这时可选的有4个值:0(全部启动),1(全部禁用),2(每个盘符单独设置),3(除系统盘外全部禁用)。
【8.3 命名规则】
1、8.3 文件名的格式:8.3 文件名称含有不多于8个字符(不包括扩展名和“.”符号)的主名,以及不多于3个字符的扩展名(“.”符号),主名和扩展名中间使用“.”符号连接。
- 8.3 文件名称中的主名如果超出8个字符,则取主名的首6位半角字符,以一个 “~” 符号连接,再以一个阿拉伯数字作结尾。
- 如果文件名称的扩展名超过3个字符,则只取扩展名的首3个字符。这时,其主名必须符合8.3 文件名的格式,即其主名必须包含 “~” 符号,如果其主名长度不足8个字符,则在主名末尾添加 “~” 符号和一个阿拉伯数字
2、在早期的DOS、Winddows版本中,8.3 文件名称全部使用大写字母,在现在的Winddows、DOS 版本中,8.3 文件名称可以忽略大小写。
3、若同一文件夹有相似的名称,则末端的数值则会自动递增。
【符合 8.3 命名规则的文件名】
下面通过实例来演示怎么使用8.3 文件名的格式
1、主名格式
在C盘根目录下新建一个名为 “test123456789.txt” 的文件,然后再使用 8.3 文件名的格式显示它,如下:
c:\>echo xyz>test123456789.txt
c:\>dir /b TEST12~1.TXT
test123456789.txt
c:\>dir /b test12~1.txt
test123456789.txt
c:\>
若同一文件夹有两个文件名,且它们的主名相似,则对应的 8.3 文件名末端的数值则会自动递增。
在C盘根目录下新建一个名为 “test123456789.txt” 的文件和名为 “test1234567890.txt” 的文件,然后再使用 8.3 文件名的格式显示它们的内容,如下:
c:\>echo one>test123456789.txt
c:\>echo two>test1234567890.txt
c:\>type test12~1.txt
one
c:\>type test12~2.txt
two
c:\>
2、扩展名格式
在C盘根目录下新建一个名为 “test.abcdef” 的文件,然后再使用 8.3 文件名的格式显示它,如下:
c:\>echo xyz>test.abcdef
c:\>dir /b TEST.ABC
找不到文件
c:\>dir /b test.abc
找不到文件
c:\>dir /b TEST~1.ABC
test.abcdef
c:\>dir /b test~1.abc
test.abcdef
c:\>
若同一文件夹有两个文件名,且它们的扩展名相似,则对应的 8.3 文件名末端的数值则会自动递增。
在C盘根目录下新建一个名为“test.abcdef”的文件和名为“test.abcdefg”的文件,然后再使用 8.3 文件名的格式显示它们的内容,如下:
c:\>echo one>test.abcdef
c:\>echo two>test.abcdefg
c:\>type test~1.abc
one
c:\>type test~2.abc
two
c:\>
【符合 8.3 命名规则的目录名】
8.3命名规则对目录名的要求和对文件名的要求一模一样。
Windows系统D盘根目录下,通常存在 “Program Files” 和 “Program Files (x86)” 两个目录,
在 “Program Files” 目录下新建 one.txt(内容:one),在 “Program Files (x86)” 目录下新建two.txt(内容:two),然后再显示这两个文件的内容。如下:
d:\>echo one>progra~1\one.txt
d:\>echo two>progra~2\two.txt
d:\>type "Program Files\one.txt"
one
d:\>type "Program Files (x86)\two.txt"
two
d:\>
【使用8.3命名规则的条件】
可以使用 8.3 命名规则的文件名(或目录名)必须具备下面两个条件之一:
- 主名的长度必须大于8个字符
- 扩展名的长度必须大于3个字符
在C盘根目录下新建一个名为 “test1234.txt” 的文件,其主名只有8个字符,所以使用 8.3 命名规则会报错,如下:
c:\>echo one>test1234.txt
c:\>dir /b test12~1.txt
找不到文件
c:\>
在C盘根目录下,新建一个名为 “dir12345” 的目录,其主名只有8个字符,所以使用 8.3 命名规则会报错;而新建一个名为 “dir.abcdef” 的目录,其扩展名长度大于3个字符,所以可以使用 8.3 命名规则。示例如下:
c:\>mkdir dir12345
c:\>cd dir123~1
系统找不到指定的路径。
c:\>md dir.abcdef
c:\>cd dir~1.abc
c:\DIR~1.ABC>
写作不易,如果本文帮到了您,请您 “在下面一圈三连”。