我的 $PROFILE 环境变量有问题吗?

sti*_*tib 4 profile powershell windows-10

如果我执行

& $PROFILE
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

& :术语“C:\Users\stib\Documents\WindowsPowerShell\”
Microsoft.PowerShell_profile.ps1' 未被识别为 cmdlet 的名称,
函数、脚本文件或可运行程序。检查名字的拼写,
或者,如果包含路径,请验证该路径是否正确,然后重试。
行:1 字符:3
+ & $个人资料
+ ~~~~~~~~~
    + CategoryInfo : ObjectNotFound: (C:\Users\stib...ell_profile.ps1:String) [], CommandNotFoundException
    + FullQualifiedErrorId:CommandNotFoundException

正确的配置文件位于$PROFILE.CurrentUserAllHosts。我的设置有问题吗?

The*_*le1 5

出现此行为的原因是当您使用运算符(即)$Profile.ToString()调用它时,会调用它的默认选择。&$Profile.CurrentUserCurrentHost

有选择地执行您的配置文件而不是依赖默认值:

& $Profile.CurrentUserAllHosts
Run Code Online (Sandbox Code Playgroud)

作为脚注,$Profile只是System.String添加属性和修改ToString方法的扩展。看:

$Profile | Get-Member -MemberType NoteProperty
Run Code Online (Sandbox Code Playgroud)

此外,当您启动该 shell 时,适用于当前 shell 的配置文件将自动执行,除非-NoProfile传递给可执行文件。