Skip to content

1.21 恢复Win10对8.3格式文件名的支持

https://scz.617.cn/windows/202204021625.txt

Q:

Win7缺省生成8.3格式文件名,Win10缺省不生成8.3格式文件名,如何改变这种行为?

A:

出于各种原因,并不建议恢复Win10对8.3格式文件名的支持,但如果确有理由,是可 以恢复这种行为的。

查询全局设置

$ fsutil 8dot3name query $ fsutil behavior query Disable8dot3

The registry state is: 2 (Per volume setting - the default).

全局设置有4种值

0 全局启用8.3 1 全局禁用8.3 2 允许各Volume有自己的8.3设置 3 系统卷启用8.3,其余卷禁用8.3

获取目标盘的"Volume{GUID}"

$ mountvol X:\ /L \?\Volume{7569e44c-e279-4e1e-9fec-44e04334ba83}\

查询特定"Volume{GUID}"或盘符的设置,任一命令均可

$ fsutil 8dot3name query X: $ fsutil 8dot3name query Volume{7569e44c-e279-4e1e-9fec-44e04334ba83} $ fsutil behavior query Disable8dot3 Volume{7569e44c-e279-4e1e-9fec-44e04334ba83}

The volume state is: 1 (8dot3 name creation is disabled). The registry state is: 2 (Per volume setting - the default).

Based on the above two settings, 8dot3 name creation is disabled on Volume{7569e44c-e279-4e1e-9fec-44e04334ba83}

修改特定"Volume{GUID}"或盘符的设置,启用8.3格式,任一命令均可

$ fsutil 8dot3name set X: 0 $ fsutil 8dot3name set Volume{7569e44c-e279-4e1e-9fec-44e04334ba83} 0 $ fsutil behavior set Disable8dot3 Volume{7569e44c-e279-4e1e-9fec-44e04334ba83} 0

Successfully enabled 8dot3name generation on X:

修改全局设置,启用8.3格式

fsutil behavior set Disable8dot3 0

启用8.3格式只影响之后新建文件,不影响已存在文件,但可以给已存在文件追加8.3 格式文件名。

fsutil file setshortname

假设启用过8.3,rename旧文件名到一个临时名字,再rename回去,并不会给已存在 文件追加8.3格式文件名。依次复制、删除、改名可以达到目的。

全局设置的注册表项所在


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem] "NtfsDisable8dot3NameCreation"=dword:00000002


reg.exe query "HKLM\SYSTEM\CurrentControlSet\Control\FileSystem" /v "NtfsDisable8dot3NameCreation"

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem NtfsDisable8dot3NameCreation REG_DWORD 0x2

全局8.3设置在注册表中,卷的8.3设置应该是在NTFS分区中,不在注册表中,重新格 式化导致卷的8.3设置恢复到默认状态。

在WSL1中访问NTFS分区,生成长文件名时是否同时生成短文件名,受前述设置影响。 但在Linux下访问NTFS分区,生成长文件名时不一定同时生成短文件名,需要测试。