私はGit Bash for Windowsを使っています(いくつかのディレクトリを右クリックし、コンテキストメニューから "Git Bash here"を選択します)。 Node.js v5.10.1。入力引数が "https://example.comは" 2リテラル前方のスラッシュを持っているかGit Bash for WindowsのNode.jsにリテラルスラッシュをどのように渡しますか?
$ node example.js "https://example.com"
[ 'C:\\...\\node.exe',
'C:\\...\\example.js',
'https:\\example.com' ]
お知らせ:
console.log(process.argv);
ここに私のコマンドラインと出力です:
は、ここに私の完全なNode.jsのスクリプト、example.js
ですですが、結果の文字列「https:\\ example.com」はのリテラルのバックスラッシュです。
バックスラッシュエスケープ(例:「https:\\/example.com」)または追加のスラッシュ(例:「https:////////example.com」)が発生しないようにしました。結果はです。常にリテラルのバックスラッシュです。
同じNode.js実行ファイルを使用して、通常のWindows cmd.exe
ウィンドウから同じスクリプトを実行しても、この動作は発生しません。同等のPythonスクリプトをGit Bash for Windows でも実行すると、はこの動作を起こしません。
更新
ウォッチこの:
$ 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の両方で発生します。
ノード6.0.0とgit bashのWindowsでテストされています。 'node.exe -e 'console.log(process.argv)' http:// example.com'' – andlrc
これは私の環境に問題があるかもしれないと思います。断続的です。 – qntm
私が提供したコマンドを実行するとどうなりますか? – andlrc