为了节省 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