当我使用Git Bash(在Windows上)时,我不能在没有指定其完整路径的情况下运行任何可执行文件,尽管它位于我的PATH变量中的文件夹中。看起来bash无法识别它。为什么?我能解决吗?
答案 0 :(得分:53)
知道了。作为Windows用户,我习惯于在没有扩展名的情况下键入可执行文件名。就我而言,我想执行一个名为cup.bat
的文件。在Windows shell中,键入cup
就足够了。 Bash不会这样工作,它需要全名。键入cup.bat
解决了问题。 (虽然我无法运行该文件,因为显然bash无法理解其内容)
切换到posh-git的另一个原因..
感谢@Tom指出我正确的方向。
答案 1 :(得分:44)
也许bash没有看到你的Windows路径。在bash中输入env|grep PATH
以确认它看到的路径。
答案 2 :(得分:30)
关注@ Daniel的评论并感谢@ Tom的回答,我发现Git bash确实使用了PATH,但没有使用我最近安装的最新路径。 为了解决这个问题,我在家(windows)目录中添加了一个名为:
的文件 .bashrc
和内容如下:
PATH=$PATH:/c/Go/bin
因为我正在安装Go并且此路径包含可执行文件go.exe
现在Git bash能够识别命令:
go
在我的情况下,也许只是系统重启就足够了,但我很高兴这个解决方案在任何情况下都能正常工作。
答案 3 :(得分:7)
在安装Git时,您可以选择下面显示的选项,它可以帮助您自动设置路径。
它为我解决了:)
答案 4 :(得分:7)
在C:\ Users \ USERNAME中创建一个名为config.bashrc的文件,其中包含:
PATH=$PATH:/c/Program\ Files\ \(x86\)/Application\ with\ space
现在将命令行上的文件移动到正确的位置:
mv config.bashrc .bashrc
答案 5 :(得分:3)
在向PATH添加新值后重新启动计算机。
答案 6 :(得分:3)
老问题,但它可以帮助别人。
我已经更改了用户范围的PATH,之后我只是注销并再次登录。
就是这样! git bash
正确加载了新的PATH值。
答案 7 :(得分:1)
如果您的git-bash
的{{1}}出现了但不是最新的,并且您不想重新启动但重新生成了PATH
,则可以尝试关闭所有PATH
,cmd.exe
和powershell.exe
,然后从“开始”菜单或桌面重新打开一个cmd.exe窗口,查看git-bash.exe
环境是否已更新。如果您更改了系统范围的PATH
,则还需要打开一个特权cmd窗口。
注意:这不适用于所有Windows版本,并且在“开始菜单”或“桌面”以外的其他任何地方打开PATH
,并在我的3台计算机和其中2台计算机上进行了测试作品。我不知道为什么会这样,但是由于cmd.exe
环境变量是在我登录和注销时自动生成的,因此我不会使用变量串联来弄乱该变量。
答案 8 :(得分:1)
这似乎是Git Bash无法始终正确解析变量%USERPROFILE%的根本原因。而不是相对于C:\ Users \\它获取值C:\ Windows \ System 32 \ systemprofile \ 将此更改为完全限定的地址后,它就可以工作,即使我之后将其设置回来,Git Bash仍然会出于某种原因使用正确的PATH。
答案 9 :(得分:1)
我可以确认重启系统会确保在windows中的环境变量中设置的PATH被git选中,并且没有其他自动方式。
答案 10 :(得分:0)
Windows 操作系统上的 Git bash 终端可以读取系统路径/用户路径并运行应用程序,但在以下情况下可能会丢失
用例 - 1:
重新启动终端应该可以工作并使用以下命令来验证您的路径
env|grep PATH
用例 - 2:
让我用一个例子解释一下 docker
不能直接在 git bash 终端上工作,对于这样的应用程序,MSYS 正在转换它的原始路径。对于此类问题,您可能需要使用命令 MSYS_NO_PATHCONV=1
告诉终端忽略路径转换并继续执行实际执行命令,例如 docker --help
应如下所示
MSYS_NO_PATHCONV=1 MSYS_NO_PATHCONV=1 docker run -dp 3000:3000 -w /app -v "$(pwd):/app" node:12-alpine sh -c "yarn install && yarn run dev"
717d12b9fe5211f0189ccbed0ba056ca242647812627682d0149ede29af472a4
用例 - 3 :
让我用一个示例 az
cli 来解释,理想情况下 az cli install 在 windows 中作为 az.cmd
添加到系统/用户路径。在 Windows 操作系统上,powershell 或命令提示符将 az.cmd
识别为 az
但 git bash 不会理解它 - 所以你必须使用别名来避免混淆,说 alias az='az.cmd'
然后执行 {{ 1}} 会为你工作
答案 11 :(得分:0)
就我而言,这是在安装heroku cli和git bash时发生的, 这是我所做的工作。
转到此位置
C:\Users\<username here>\AppData\Local
并删除我的heroku文件夹中的文件。 所以我删除了文件夹并运行cmd。它正在工作
答案 12 :(得分:0)
我知道这是一个老问题,但是有两种类型的环境变量。一台归User所有,一台遍及整个系统。 根据您如何打开git bash(具有用户权限或具有管理员权限),所使用的环境变量PATH可以来自您的用户变量,也可以来自系统变量。 见下文:
如上一个答案中所述,请使用命令env|grep PATH
来检查您正在使用哪个,并相应地更新变量。
顺便说一句,无需重新启动系统。只需关闭并重新打开git bash
答案 13 :(得分:0)
在Windows 10上,只需卸载git并重新安装即可。它将自动为您设置环境变量。 我错误地删除了环境变量,并且无法在IDE中使用git。重新安装git可以解决此问题。
答案 14 :(得分:0)
我遇到了一个愚蠢的错误。我在Windows 10机器上为golang工作区设置了系统范围的用户变量路径。当我删除冗余系统变量路径并注销然后重新登录时,我能够在bash中调用.exe文件并成功调用go env。
尽管OP得到了回答,但这是另一个问题,可能使bash无法看到您的路径。我刚刚再次测试了bash的问题,它似乎确实产生了某种冲突,从而阻止bash遵循其中任何一条路径。
答案 15 :(得分:0)
I meet this problem when I try to use mingw to compile the xgboost lib in Win10. Finally I found the solution.
Create a file named as .bashrc in your home directory (usually the C:\Users\username). Then add the path to it. Remember to use quotes if your path contains blank, and remember to use /c/ instead of C:/
For example:
PATH=$PATH:"/c/Program Files/mingw-w64/x86_64-7.2.0-posix-seh-rt_v5-rev1/mingw64/bin"
答案 16 :(得分:0)
对我来说最方便的是: 1)创建目录&#34; bin&#34;在C:驱动器的根目录中 2)添加&#34; C:/ bin;&#34; to&#34;我的电脑中的路径 - &gt;属性 - &gt; Environemtal变量&#34;
答案 17 :(得分:-1)
编辑/添加到$ PATH变量时,不要转义(\)特殊字符。
例如,程序文件中的应用程序目录如下所示:
PATH=$PATH:/c/Program Files (x86)/random/application
不要这样做:
PATH=$PATH:/c/Program\ Files\ \\(x86\\)/random/application/
希望这有帮助。
答案 18 :(得分:-2)
对于那些尝试过所有上述方法的人,包括Windows系统环境。变量,.bashrc,.bashprofile等。并且可以在回声$ PATH&#39;中看到正确的路径。 ......我可能会为您提供解决方案。
使用 exec 2&gt;来抑制错误/ dev / null
我的脚本运行正常,但没有找到&#39;命令&#39;或者&#39;找不到目录&#39;尽管如此,据我所知,路径是齐平的。因此,如果您取消这些错误(可能还需要添加&#39;设置+ e&#39;),那么它可以正常工作。
答案 19 :(得分:-3)
在Windows 7路径环境变量中 我只是在系统变量路径的末尾添加
\; C:\ Program Files \ Git \ bin
现在可以使用了!
答案 20 :(得分:-3)
创建一个名为Path的User变量并添加为值%Path%,从我注意到Git Bash只看到用户变量而不是系统变量。通过执行上述过程,您将在用户变量中公开您的系统变量。