Git Bash 将本地 Git 路径添加到以 "/" 开头的参数



为了说明,这里有一个非常基本的Javascript文件,简化为最基本的内容,比如"test.js":

console.log(process.argv.slice(2));

所以这一行应该只输出我的命令行参数。就是这样——在这里之前根本没有魔法。:(

现在我用Node.js调用这个文件如下。。。我得到:

$ node test --my-path '/my_path'
[
'--my-path',
'C:/Users/drundanibel/AppData/Local/Atlassian/SourceTree/git_local/my_path'
]

正如您所看到的,Node只是将我的本地Windows Git路径前缀为传递的字符串"/my_path"。

有人能告诉我为什么,以及我如何才能阻止它吗?

不用说,在我的真实代码中,我使用包装器库(minimit(来解析process.argv.

当然,如果Node自己尽早解析并更改核心属性,这对我没有帮助。甚至在我有机会拿起我原来的绳子之前。。。

编辑:

刚才我发现这似乎不是Node.js特有的问题,而是我在Windows下使用的bash之一。因为如果我在Windows控制台中进行调用,脚本会按预期响应:

> node test --my-path "/my_path"
[ '--my-path', '/my_path' ]

我自己在这篇文章中找到了答案:

如何阻止MinGW和MSYS篡改命令行上给出的路径名

非常感谢@Igor Mukhin!

最新更新