我正在使用 Git Bash for Windows(也就是右键单击某个目录,然后从上下文菜单中选择“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
窗口运行相同的脚本不会导致此行为。从Git Bash for Windows运行等效的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.exe
和 which node
返回相同的结果,都指向该EXE文件。该目录中没有名为node
的单独文件。这在Node.js 5.10.1和Node.js 6.0.0上都发生。
node.exe -e 'console.log(process.argv)' 'http://example.com'
- Andreas Louvnode.exe
,而不是使用node
。 - qntm'https://example.com'
) 了吗? - Shammel Lee