Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

在 Windows 中,通过 PowerShell 刷新环境变量 PATH #139

Open
tobemaster56 opened this issue Sep 30, 2024 · 0 comments
Open

在 Windows 中,通过 PowerShell 刷新环境变量 PATH #139

tobemaster56 opened this issue Sep 30, 2024 · 0 comments

Comments

@tobemaster56
Copy link
Owner

windows 的vscode,通过 winget 安装了 github cli,输入命令 gh --version,提示 gh 不是有效的命令,需要重新启动vscode 才行,这是咋回事

  1. 环境变量更新问题

    • 当通过winget安装github cligh)后,系统需要更新环境变量才能识别新安装的命令。在安装过程中,程序会将可执行文件的路径添加到系统的PATH环境变量中。
    • 然而,vscode的终端可能没有立即获取到这个更新后的PATH环境变量。重新启动vscode可以让它重新加载环境变量,从而能够识别gh命令。
    • 这是因为vscode终端在启动时读取当时的系统环境变量配置,安装新软件后,如果没有重新加载,它就无法找到新添加到PATH中的命令路径。
  2. 解决方法建议

    • 手动更新环境变量(替代重启vscode)
      • Windows系统中,可以尝试手动更新终端的环境变量。在vscode终端中,输入$env:Path += ";C:\Program Files\GitHub CLI"(假设gh安装在C:\Program Files\GitHub CLI路径下,你需要根据实际安装路径进行修改)。这会将gh的安装路径临时添加到当前终端会话的PATH环境变量中,这样就有可能使gh命令在不重启vscode的情况下生效。
    • 检查安装路径和权限问题
      • 确认gh确实安装到了系统的PATH环境变量所包含的路径中。有时候安装程序可能会出现异常,没有将程序安装到正确的位置或者没有正确配置环境变量。
      • 另外,检查用户对gh可执行文件及其所在目录的权限。如果没有足够的权限,可能会导致无法正常调用命令。

PATH 是什么

  1. 定义和作用
    • PATH是一个操作系统环境变量,它的主要作用是告诉操作系统,当用户在命令行(如Windows的命令提示符或vscode终端等)中输入一个命令时,应该去哪里查找对应的可执行文件。
    • 例如,当你在命令行输入gh --version,操作系统会在PATH变量所列出的一系列目录中逐个查找名为gh的可执行文件。如果找到了,就会执行这个文件对应的操作;如果找不到,就会提示类似于“不是有效的命令”这样的错误。
  2. 组成和格式
    • PATH环境变量实际上是一个由多个目录路径组成的字符串。在Windows系统中,这些路径之间通常用分号(;)分隔。例如,一个典型的PATH可能是C:\Windows\System32;C:\Program Files\Java\jdk1.8.0_291\bin;C:\Python39\Scripts;
    • 这意味着当你在命令行输入一个命令时,操作系统会先在C:\Windows\System32目录下查找对应的可执行文件,然后在C:\Program Files\Java\jdk1.8.0_291\bin目录下查找,以此类推,直到找到对应的文件或者查找完所有路径。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant