【问题标题】:Git Bash adds local Git Path to Arguments beginning with "/"Git Bash 将本地 Git 路径添加到以“/”开头的参数
【发布时间】:2020-03-11 16:14:34
【问题描述】:

为了说明,这里有一个非常基本的 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”的前缀。

谁能告诉我为什么,以及如何阻止它?

不用说,在我的真实代码中,我使用包装库(minimist)来解析 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】:

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

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

    非常感谢@Igor Mukhin!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-03
      • 2013-12-02
      • 2021-04-02
      • 1970-01-01
      • 2021-11-14
      • 1970-01-01
      • 2017-08-11
      • 2019-11-12
      相关资源
      最近更新 更多