【发布时间】: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会发生什么?