Windows 内置库的环境变量?

zou*_*ney 4 windows windows-7 environment-variables libraries

Windows 7 是否为预先存在的库定义了环境变量?我很好奇,因为我经常在打开/保存对话框或Run提示中输入路径时使用这些。例如,要访问当前用户的 Firefox 设置目录,请执行以下操作run

%APPDATA%\Mozilla\Firefox
Run Code Online (Sandbox Code Playgroud)

这是一个方便的快捷方式,我希望为库路径找到类似的东西。例如:

%LIBRARIES%\Music\
%MUSIC%\
Run Code Online (Sandbox Code Playgroud)

我知道库聚合了一个或多个顶级文件夹,因此可能存在歧义。Microsoft 有一个环境变量列表,但大多数都无法通过 Windows UI 访问。这个问题也链接到一个不错的列表,但不包括用户的Documents文件夹、Music文件夹等。

zou*_*ney 7

Windows 库实际上只是xml定义如何显示文件夹集合的文件。它们使用 Windows 内置的特殊外壳扩展显示。由于它们不是真正的文件夹,文件和子文件夹不能通过路径直接访问。

使用打开的资源管理器窗口,您可以在地址栏中输入:

libraries\music
Run Code Online (Sandbox Code Playgroud)

这似乎不适用于File Name打开/保存对话框框。它也不适用于run命令。

你能做些什么:

Windows Vista 引入了“已知文件夹”概念。它取代了XP 中使用的较旧的“恒定特殊项目 ID 列表”( CSIDL ) 方法。Windows 博客上有一篇很棒的文章;它讨论了这一变化并提供了*.library-ms文件结构的概述。

已知文件夹具有 GUID。要通过命令行访问它们,请在您的 URI 前加上knownfolder:. 有几十个定义Music例如,要访问当前用户的文件夹,请run使用以下命令:

knownfolder:{4BD8D571-6D19-48D3-BE97-422220080E43}
Run Code Online (Sandbox Code Playgroud)

这将使您进入预定义的默认音乐文件夹。因此,如果您更改了库的文件夹,很遗憾这将不起作用。

可以使用IShellLibrary接口以编程方式访问库的默认文件夹,但这超出了我原来问题的范围。似乎最好的方法是:

  1. 手动将环境变量映射到它们的已知路径
  2. 或者使用它们的 GUID 手动映射环境变量。这里的优点是您可以将其设置为系统变量并使其适用于所有用户)。


小智 5

如果您想%music%指向您的音乐文件夹,那么您只需向系统添加一个新的环境变量即可。

例如,如果您想%Libraries%指向您的库,请在 上创建一个快捷方式c:\,然后创建一个指向您的c:\libraries快捷方式的新环境变量。(但直接进入子文件夹不起作用,但您可以为库中的那些创建一个新变量)

然后,您可以从 run with%music%%Libraries%