我使用 Windows 7 x64。
如果我右键单击名为 的文件夹C:\Longer than (3)
,然后单击“发送到”,并将其发送到仅显示其收到的参数的 .ahk 文件,它会显示C:\LONGER~3
。几乎所有文件都会发生同样的情况,例如C:\Новый текстовый документ.txt
变成 → C:\700C~1.TXT
。
我如何将这些路径转换为正常路径?那么这些路径转换是什么?
答案1
这就是所谓的 8.3 文件名:
8.3 文件名(也称为短文件名或 SFN)是旧版 DOS 和 Windows 95 和 Windows NT 3.5 之前的 Microsoft Windows 版本使用的文件名约定。 它还在现代 Microsoft 操作系统中用作长文件名的替代文件名,以兼容旧版程序。...
剥离
的名称随后被截断为其基本名称的前 6 个字母,后跟波浪号,后跟单个数字,后跟句点 .,后跟扩展名的前 3 个字符。
数字只是一个计数器。对于C:\LONGER~3
,您可能有或曾经有 3 个以 开头的文件C:\LONGER
。
此格式允许将文件名转换为不包含特殊字符(尤其是空格)的格式。这对于删除名称中包含不可见特殊字符的文件或将其作为不包含空格的参数传递(否则可能会被截断为第一个空格)非常有用。
没有必要将这些名称转换为长格式,因为它们的工作效果与长格式一样好。
有关将 8.3 名称转换为长格式的多种方法,请参阅帖子
如何在批处理脚本中将 Windows 短名称路径转换为长名称。
答案2
据我所知,您无法获取原始文件名。但您可以通过命令禁用此选项:
fsutil.exe 8dot3name set D: 1
这将禁用磁盘D
。要禁用系统范围的此功能,请使用以下命令:
fsutil.exe behavior set disable8dot3 1
PS 不确定此命令是否在 Windows 7 中可用