【WINDOWS / DOS 批处理】8.3命名规则

发布于:2022-11-07 ⋅ 阅读:(981) ⋅ 点赞:(0)

在很久之前,大概是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>

写作不易,如果本文帮到了您,请您 “在下面一圈三连”。

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到