在 Windows PowerShell 配置文件中添加 Starship 命令行时出错

Error adding Starship command line in Windows PowerShell profile

我添加了 scoop,然后是 Starship,正如 Starship 官方 website 使用命令 scoop install starship 所说的那样。然后我将从 Starship 网站复制的行添加到 PowerShell 配置文件:

Invoke-Expression (&starship init powershell)

但它会向 PowerShell 抛出此错误 window: Invoke-Expression : Cannot bind argument to parameter 'Command' because it is null.

这是我的 PowerShell 中唯一的一行 $Profile

但是问题出在哪里,请问您能解决吗?错误如下图所示:

简单的解决方案

Invoke-Expression (& 'C:\Users\psayeed1990\scoop\apps\starship\current\starship.exe' init powershell --print-full-init | Out-String)

根据需要更改 starship.exe 的 link。

进一步阅读,我就是这样解决的...

用记事本创建文件对我不起作用

首先,如果您的 PowerShell $profile 不存在,请在命令行中使用此命令创建配置文件(使用记事本创建文件不起作用)。

if (!(Test-Path -Path $PROFILE)) {

  New-Item -ItemType File -Path $PROFILE -Force

}

其次,如果您命令notepad $profile,您可以查看、编辑和保存该文件。从 official Starship site 复制此代码并将其粘贴到 $profile 文件 Invoke-Expression (&starship init powershell).

的末尾

第三,如果还不行,你可能要安装vcredist2019。 scoop install vcredist2019 对我不起作用。所以,我从official site.

下载了

第四,安装vcredist2019也没有解决。正如@Olaf 在评论中指出的那样,您需要 引号 而不是括号 Invoke-Expression "&starship init powershell".

我不认为引用是写作的方式。如果您重新启动您的 PowerShell 但它还没有运行,您可能仍然会看到一条错误或一行,为您提供 Starship 可执行文件的确切路径的命令。

第五,将$profile中的上述代码Invoke-Expression "&starship init powershell"替换为该行

Invoke-Expression (& 'C:\Users\psayeed1990\scoop\apps\starship\current\starship.exe' init powershell --print-full-init | Out-String)

我希望这能奏效。

您需要先激活PowerShell脚本的执行。 为此,运行 以管理员身份执行以下命令:

Set-ExecutionPolicy RemoteSigned