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

问题描述 投票:0回答:1

为说明起见,这是一个非常基本的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”。

谁能告诉我原因,以及如何阻止它?

不用说,在我的真实代码中,我使用包装器库(极简主义者)来解析process.argv。

但是,如果该核心属性由Node本身尽早解析和更改,这当然对我没有帮助。甚至在我没有任何机会拿起我的原始字符串之前...

编辑:

现在,我发现这似乎不是特定于Node.js的问题,而是我在Windows下使用的一种bash。因为如果我将呼叫放在Windows控制台中,脚本将按预期方式响应:

> node test --my-path "/my_path"
[ '--my-path', '/my_path' ]
node.js path arguments git-bash argv
1个回答
0
投票

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

How to stop MinGW and MSYS from mangling path names given at the command line

非常感谢@ Arthur2e5!

© www.soinside.com 2019 - 2024. All rights reserved.