Node.js node process.argv正在剥离插入符号(^)
我试图将插入符号字符作为参数传递到节点,但Node.js node process.argv正在剥离插入符号(^),node.js,Node.js,我试图将插入符号字符作为参数传递到节点,但process.argv正在剥离插入符号。传递--bar=^caret无效。有什么方法可以防止process.argv剥离插入符号 //command: npm run foo -- --bar=^caret //foo.js: console.log(process.argv); //actual output: [ 'C:\\Program Files\\nodejs\\node.exe', 'C:\\cygwin64\\home\\m
process.argv
正在剥离插入符号。传递--bar=^caret
无效。有什么方法可以防止process.argv
剥离插入符号
//command:
npm run foo -- --bar=^caret
//foo.js:
console.log(process.argv);
//actual output:
[
'C:\\Program Files\\nodejs\\node.exe',
'C:\\cygwin64\\home\\me\\test\\scripts\\foo.js',
'--bar=caret'
]
//expected output:
[
'C:\\Program Files\\nodejs\\node.exe',
'C:\\cygwin64\\home\\me\\test\\scripts\\foo.js',
'--bar=^caret'
]
^
是Windows命令处理器(cmd
)的转义字符。如果要在参数中使用文本^
运行程序窗体cmd
,则需要改为编写^
,或者在本例中,使用引号将--bar=^caret
括起来
这些措施应该有效:
npm run foo -- "--bar=^caret"
npm run foo -- --bar=^^caret
从帮助CMD
:
需要引号的特殊字符包括:
&()[]{}^=;!'+,`~
这在PowerShell或Bash中是不必要的,因为它们的转义字符分别是,
`
和\
不是Node.js,而是正在剥离插入符号的字符。可能是贝壳。试试“--bar=^caret”
啊,你说得对。剥落的是外壳。我以前在PowerShell中运行。现在我在Windows命令处理器中运行,并将参数用双引号括起来。
The special characters that require quotes are:
<space>
&()[]{}^=;!'+,`~