Windows 7 中“我的文档”的简称

Windows 7 中“我的文档”的简称

我有一个程序需要访问我安装在“我的文档”文件夹中的 c++ 编译器 - 例如 d:\My Documents

dir /x程序无法处理路径中的空格,并且路径已用双引号引起来。我尝试使用和找出简称for %I in (.) do echo %~sI。这只会返回 My Documents 的全名。我也尝试过,%userprofile%\documents但程序无法识别这一点。

为什么我无法使用此命令获取此文件夹的简称?还有其他方法可以获取简称或可能的截断吗?

答案1

您可能正在查看链接或快捷方式。

“我的文档”的默认位置是:

C:\Users\%USERNAME%\Documents

因此,如果您的 %USERNAME% 是“myname”,您可以引用:

C:\Users\myname\Documents

听起来你正在使用一个需要 DOS 8.3 文件名的旧版 command.com 程序。在这种情况下,你需要取前六个字符并为第一个项目添加“~1”。如果你有两个项目共享相同的前六个字符,那么下一个项目将以“~2”结尾,依此类推。要确定,你可以运行“dir /x”来查看已为每个文件夹分配了哪些短名称。

在我的最后一个示例中,我将展示此格式的长用户名是什么样子。示例用户名将是“longusername”。

C:\Users\LONGUS~1\DOCUME~1

按照此模式使用您自己的用户名。

如果您的“我的文档”不在默认位置或者您想要动态找到位置,您可以检查以下注册表位置:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders

答案2

dir /x将显示文件和文件夹的短文件名(如果存在)。如果长名称大于 8.3 字符格式,则将存在一个。

例如,这里有一个dir /x在我的用户配置文件夹中使用的示例:

01/02/2018  05:35 PM    <DIR>                       .
01/02/2018  05:35 PM    <DIR>                       ..
10/16/2017  09:41 AM    <DIR>          ASDM~1       .asdm
11/01/2017  01:01 PM    <DIR>          GIMP-2~1.8   .gimp-2.8
11/20/2017  05:26 PM    <DIR>          NETWOR~1     .networkassistant
12/15/2016  09:54 AM    <DIR>          THUMBN~1     .thumbnails
11/16/2017  09:48 PM    <DIR>                       Contacts
07/17/2017  02:23 PM    <DIR>          DOCUME~1     Documents
01/03/2018  01:07 PM    <DIR>          DOWNLO~1     Downloads
03/14/2017  02:43 PM    <DIR>                       GNS3
12/19/2017  01:10 PM    <DIR>          GOOGLE~1     Google Drive
11/16/2017  09:48 PM    <DIR>                       Links
06/22/2017  07:20 AM    <DIR>                       OneDrive

请注意,短名称显示在长名称旁边。

还要注意,缩短名称的标准是删除空格,将名称缩短为 6 个字符并添加 ~1,将所有字母大写,添加文件扩展名的前 3 个字符。如果有冲突,则将添加 ~2,依此类推。

如果我们假设您的文档文件夹保存在D:\My Documents,并且没有其他冲突的名称,则短名称将为D:\MYDOCU~1

您无法使用 %userprofile% 的原因可能与您无法使用长文件名的原因相同。该程序根本不理解环境变量。而且,它也不使用短名称版本。

相关内容