如何从脚本中找到桌面目录,即使它已从用户配置文件中移出?

如何从脚本中找到桌面目录,即使它已从用户配置文件中移出?

为了节省 Windows 安装(C:)在 SSD 上的空间,我使用图形界面将每个用户的桌面等文件夹重新定位到单独的 HDD(D:)。

因此,我无法使用%userprofile%\Desktop来获取实际的桌面,因为它扩展为不存在的C:\Users\User Name\Desktop,而它应该引用D:\Users\User Name\Desktop

我该如何解决这个问题?我如何获得实际的桌面位置?我想要一些通用的东西,这样我的脚本就可以在其他人的计算机上运行,​​如果他们对其他驱动器号做了类似的事情。(此外,为什么 Windows 不使用符号链接或类似的东西来实现这种重定位?)

答案1

这将打印出路径。

使用

cscript //nologo "C:\Folder\GetUserDesktopPath.vbs"

文件内容

wscript.echo CreateObject("Shell.Application").Namespace(&h10).self.path

对其进行解析(%%A在批处理文件中以%A交互方式使用)。

for /f "delims=" %A in ('cscript //nologo "C:\Folder\Test.vbs"') Do echo %A

请参阅技术文档

https://docs.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-shgetknownfolderpath

相关内容