【问题标题】:git bash doesn't like one foldergit bash 不喜欢一个文件夹
【发布时间】:2018-04-13 12:55:52
【问题描述】:

我在名为“Salesforce CLI”的文件夹中有一个名为 SFDX 的命令行工具。可执行文件在路径中。我可以从 cmd.exe 运行它,但不能从 git bash 运行。如果这是一条线索,Visual Studio Code 也找不到它。

让我复制一些输出。

cmd.exe

>path
[...]C:\Program Files\Java\jdk1.8.0_162\bin;[...]C:\Program Files\Salesforce CLI\bin
>java -version
java version "1.8.0_162"
>sfdx --version
sfdx-cli/6.11.0-9a1ef8794d (windows-x64) node-v8.9.4

现在在 git bash

$ echo $PATH
[...]/c/Program Files/Java/jdk1.8.0_162/bin:[...]/c/Program Files/Salesforce CLI/bin
$ java -version
java version "1.8.0_162"
$ sfdx --version
The system cannot find the path specified.
$ ls /c/Program\ Files/Salesforce\ CLI/bin -l
-rwxr-xr-x 1 taude 197610 121 Apr  9 20:15 sfdx*
-rw-r--r-- 1 taude 197610 824 Apr  9 20:15 sfdx.cmd
$ /c/Program\ Files/Salesforce\ CLI/bin/sfdx --version
The system cannot find the path specified.

唯一引起我注意的是我的 DOS 路径中的一些双分号。但是这些在 git bash 中不会显示为双冒号。我有点吓坏了。我错过了什么?

【问题讨论】:

  • 如果你指定一个可执行文件的绝对路径,那么$PATH是无关紧要的。
  • 您的PATH 是否以 DOS 回车符结尾? cat -v <<<"$PATH"(除非您确切知道自己在做什么,否则通常要注意在变量周围使用引号)。
  • 我似乎记得cmd 会尝试基于PATHEXT 运行文件,这意味着它可能会得到sfdx.cmd。 Git Bash 可能会直接进入sfdx 文件。可能值得研究一下。如果将sfdx 复制到sfdx99 并尝试从cmd 运行sfdx99 会发生什么?

标签: bash git


【解决方案1】:

首先尝试在 CMD 中使 sfdx 使用尽可能小的 PATH(所需的最小文件夹集),包括:

  • Salesforce CLI/bin 在第一
  • C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0 在最后。
  • D:\prgs\git\latest\bin;D:\prgs\git\latest\usr\bin在中间

然后打开一个 git bash 看看问题是否仍然存在。

【讨论】:

  • 我认为@paxdiablo 是在正确的轨道上。我看到这个特定的命令行工具有一个已知的限制,因为它不支持像 git bash 这样的工具。 salesforce.stackexchange.com/questions/204932/… 如果我尝试运行 sfdx.cmd 而不是 sfdx 它可以工作。这并不能解决我的真正问题,即 VS Code 没有找到它,但我正在取得进展。
猜你喜欢
  • 2018-05-05
  • 1970-01-01
  • 1970-01-01
  • 2012-09-26
  • 2015-10-27
  • 2020-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多