Win 10-通过命令行或 Powershell 显示已知文件夹?FOLDERID_Documents 指向的位置

Win 10-通过命令行或 Powershell 显示已知文件夹?FOLDERID_Documents 指向的位置

?FOLDERID_Documents有谁知道在 Windows 10(版本 1703)中显示已知文件夹当前指向的位置的方法吗?

我需要一种可以从 DOS 命令行或 Powershell 执行的方法,因为我正在尝试解决一台不允许我使用更常规方法的机器上的问题。

我并不是一个真正的 Powershell 用户,因此,如果我要求一种友好而温和的方式,那么这是可行的方法。

?FOLDERID_Documents是否可以使用 VB 脚本来公开值?

我知道这?FOLDERID_Documents不是传统意义上的环境变量。我也知道环境变量%USERPROFILE%可能指向?FOLDERID_Documents指向的根位置,但我希望一定有一种简单的方法可以用?FOLDERID_Documents一个简单的命令显示的值。

根据微软开发中心(参考:https://learn.microsoft.com/en-us/windows/win32/shell/knownfolderid):

KNOWNFOLDERID 常量表示用于标识在系统中注册为已知文件夹的标准文件夹的 GUID。这些文件夹随 Windows Vista 及更高版本的操作系统一起安装,计算机将仅安装适合它的文件夹。

看起来一些应用程序(如 SAS 9.4 版)利用这些 KNOWNFOLDERID 将自身定向到通用文件夹(如)所表示的物理位置,My Documents而其他应用程序则不会。我的问题是,对于我的一些 SAS 用户来说,他们的 Windows 10 安装似乎突然忘记了?FOLDERID_Documents指向的位置。他们只是在过去几天才遇到这个问题。

由于这个问题并不影响所有用户,我正在尝试找到一种简单的方法来显示?FOLDERID_Documents受影响和不受影响的 Windows 安装所持有的值,以便我可以通过我们的内部技术支持来提出它。

答案1

reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Personal

答案2

电源外壳shell.application com 对象的 NameSpace() 方法可以解析以下文件夹的传统整数枚举 FolderID 或 KnownFolder 名称:

HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions

该方法返回的 Folder 对象对应的 FolderItem 具有一个Path属性,该属性将返回文件夹的文件系统位置。

在 Windows 10 系统上, 实际上, 在 下找到的每个用户系统文件夹都有两个 KnownFolder This PC。 对于Documents,ID 和名称为:
| ID | 名称 | |----|------| | {FDD39AD0-238F-46AF-ADB4-6C85480369C7}| 个人 | | {f42ee2d3-909f-4907-8871-4c22fc0bf756}| 本地文档 |

因此,电源外壳控制台,用于一次性查找:

> (New-Object -com shell.application).NameSpace("shell:Personal").Self.Path

将返回类似以下内容:

PS C:\> (New-Object -com shell.application).NameSpace("shell:Personal").Self.Path
C:\Users\keith\Documents
PS C:\>

或者预定义 shell.application 对象以供重复使用。我已$shell在我的配置文件中定义,因此它在 evefry 会话中可用:

> $shell.NameSpace('shell:My Music').Self.Path
PS C:\> $shell.NameSpace('shell:My Music').self.path
C:\Users\keith\Music
PS C:\>

相关内容