gpt4 book ai didi

javascript - 如何在 Git Bash for Windows 中将文字正斜杠传递到 Node.js?

转载 作者:搜寻专家 更新时间:2023-10-31 23:24:10 24 4
gpt4 key购买 nike

我正在使用 Windows 版 Git Bash(例如,我右键单击某个目录并从上下文菜单中选择“Git Bash here”)。 Node.js v5.10.1。

这是我完整的 Node.js 脚本,example.js:

console.log(process.argv);

这是我的命令行和输出:

$ node example.js "https://example.com"
[ 'C:\\...\\node.exe',
'C:\\...\\example.js',
'https:\\example.com' ]

请注意输入参数“https://example.com”如何具有两个文字正斜杠,但结果字符串“https:\\example.com”如何具有一个文字反斜杠 .

我发现命令行中再多的反斜杠转义(例如“https:\\/example.com”)或额外的正斜杠(例如“https:////////example.com”)也无法阻止这种情况的发生。结果总是一个文字反斜杠。

使用相同的 Node.js 可执行文件从普通 Windows cmd.exe 窗口运行相同的脚本不会导致此行为。从适用于 Windows 的 Git Bash 运行等效的 Python 脚本不会导致此行为。

更新

看这个:

$ node.exe -e "console.log(process.argv)" "https://example.com"
[ 'C:\\...\\node.exe',
'https://example.com' ]

$ node -e "console.log(process.argv)" "https://example.com"
[ 'C:\\...\\node.exe',
'https:\\example.com' ]

为什么从调用末尾删除“.exe”会导致斜线反转?如果相关的话,我正在使用 NVM 1.1.0。 which node.exewhich node 返回相同的结果,都指向该 EXE 文件。该目录中没有名为 node 的单独文件。这发生在 Node.js 5.10.1 和 Node.js 6.0.0 上。

最佳答案

Git Bash 基于 MSYS2,它像 MinGW 一样执行“POSIX path conversion”。在调用类似 windows 的可执行文件时,此转换 windows-ifys 路径带有斜线。 MSYS2 可能以不同于 MinGW 的方式完成了一些“Windows 外观”检测。

评论中提到的问题joezen777指向a solution : 只需将 ;https:;http: 添加到 MSYS2_ARG_CONV_EXCL。文档位于 https://github.com/msys2/msys2/wiki/Porting。 .

关于javascript - 如何在 Git Bash for Windows 中将文字正斜杠传递到 Node.js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37051203/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com