fsutil 8dot3name

查询或更改短名称(8dot3 名称)行为的设置,其中包括:

  • 查询短名称行为的当前设置。

  • 扫描指定的目录路径以查找从指定目录路径中删除短名称时可能受到影响的注册表项。

  • 更改控制短名称行为的设置。 此设置可以应用于指定的卷或默认卷设置。

  • 移除目录中所有文件的短名称。

重要

如果永久移除 8dot3 文件名而不修改指向 8dot3 文件名的注册表项,则可能会导致意外的应用程序故障,包括无法卸载应用程序。 建议你先备份目录或卷,然后再尝试移除 8dot3 文件名。

语法

fsutil 8dot3name [query] [<volumepath>]
fsutil 8dot3name [scan] [/s] [/l [<log file>] ] [/v] <directorypath>
fsutil 8dot3name [set] { <defaultvalue> | <volumepath> {1|0}}
fsutil 8dot3name [strip] [/t] [/s] [/f] [/l [<log file.] ] [/v] <directorypath>

参数

参数 说明
query [<volumepath>] 查询文件系统以获取 8dot3 短名称创建行为的状态。

如果未将 volumepath 指定为参数,则会显示所有卷的默认 8dot3name 创建行为设置。

scan <directorypath> 扫描位于指定目录路径中的文件,查找从文件名中删除 8dot3 短名称时可能受到影响的注册表项。
set {<defaultvalue> \| <volumepath>} 以下情况下,8dot3 名称创建的文件系统行为有所更改:
  • 指定 defaultvalue 时,注册表项 HKLM\System\CurrentControlSet\Control\FileSystem\NtfsDisable8dot3NameCreation 将设置为 defaultvalue。

    DefaultValue 可以具有以下值:

    • 0 :为系统上的所有卷启用 8dot3 名称创建。
    • 1:禁用系统上所有卷的 8dot3 名称创建。
    • 2 :按卷设置 8dot3 名称创建。
    • 3:禁用除系统卷之外的所有卷的 8dot3 名称创建。
  • 指定 volumepath 时,磁盘上的指定卷标志 8dot3name 属性设置为为指定卷启用 8dot3 名称创建 (0) 或设置为禁用指定卷 (1) 上的 8dot3 名称创建。

    必须先将 8dot3 名称创建的默认文件系统行为设置为值 2,然后才能为指定卷启用或禁用 8dot3 名称创建。

strip <directorypath> 移除位于指定目录路径中的所有文件的 8dot3 文件名。 对于目录路径与文件名组合包含超过 260 个字符的任何文件,不会移除 8dot3 文件名。

此命令列出指向永久移除了 8dot3 文件名的文件的注册表项(但不会修改)。

<volumepath> 指定驱动器名称,后跟冒号或 GUID,格式为 volume{GUID}
/f 指定位于指定目录路径中的所有文件都移除 8dot3 文件名,即使存在某些注册表项指向了使用 8dot3 文件名的文件。 在这种情况下,该操作将移除 8dot3 文件名,但不修改指向使用 8dot3 文件名的文件的任何注册表项。 警告:建议在使用 /f 参数之前备份目录或卷,因为这可能会导致意外的应用程序故障,包括无法卸载程序。
/l [<log file>] 指定写入信息的日志文件。

如果未指定 /l 参数,则所有信息都将写入默认日志文件:%temp%\8dot3_removal_log@(GMT YYYY-MM-DD HH-MM-SS).log**

/s 指定应将操作应用于指定目录路径的子目录。
/t 指定应在测试模式下运行 8dot3 文件名移除操作。 执行除实际移除 8dot3 文件名之外的所有操作。 可以使用测试模式来发现哪些注册表项指向使用 8dot3 文件名的文件。
/v 指定写入日志文件的所有信息也显示在命令行上。

示例

若要查询使用 GUID {928842df-5a01-11de-a85c-806e6f6e6963} 指定的磁盘卷的禁用 8dot3 名称行为,请键入:

fsutil 8dot3name query volume{928842df-5a01-11de-a85c-806e6f6e6963}

还可以使用 behavior 子命令查询 8dot3 名称行为。

若要移除 D:\MyData 目录和所有子目录中的 8dot3 文件名,同时将信息写入指定为 mylogfile 的日志文件.log,请键入:

fsutil 8dot3name strip /l mylogfile.log /s d:\MyData