在使用 powershell 时,我刚刚注意到,$HOME
如果将用户的数据文件夹移动到其他驱动器,变量将不会给出正确的结果。例如,假设有两个驱动器(C: 和 D:),并且用户已将其 Documents 数据文件夹移动到 D:。
当发生这种情况时,$HOME
仍然解析为C:\Users\username\...
,这意味着使用它来获取用户的配置文件不允许我访问他的个人资料文件(现在在D:\users\username\Documents\Powershell\Microsoft.PowerShell_profile.ps1
当用户将其数据文件夹移动到另一个驱动器时,有什么提示关于如何获取用户的个人资料?
谢谢。
答案1
使用$PROFILE
链接页面下一节中描述的变量。
PS> notepad $profile
(虽然它是一种具有多个属性的自定义类型,但它也可以单独使用,因为它的 .ToString() 直接返回当前用户的配置文件路径。)
答案2
您可以通过以下方式在 PowerShell 中找到 Documents 文件夹:
[Environment]::GetFolderPath('MyDocuments')
对于文档被重定向的情况,这将更好地发挥作用。