Javascript 运行节点文件参数时,请切断双引号

Javascript 运行节点文件参数时,请切断双引号,javascript,node.js,windows,cmd,Javascript,Node.js,Windows,Cmd,我创建了节点应用程序,该应用程序应通过终端运行,并带有以下参数: node index.js --param1="test" --body=<div style="font-family: Lato;"> 在参数值中转义引号: node index.js--param1=“test”--body=“” 结果: Arg: param1 = test Arg: body = <div style="font-family: Lato;"> Arg:param1=test

我创建了节点应用程序,该应用程序应通过终端运行,并带有以下参数:

node index.js --param1="test" --body=<div style="font-family: Lato;">

在参数值中转义引号:

node index.js--param1=“test”--body=“”

结果:

Arg: param1 = test
Arg: body = <div style="font-family: Lato;">
Arg:param1=test
Arg:body=

在参数值中转义引号:

node index.js--param1=“test”--body=“”

结果:

Arg: param1 = test
Arg: body = <div style="font-family: Lato;">
Arg:param1=test
Arg:body=

“问题是,当我在args中运行这个时,我有:“-是的,但不是真的,对吗?”
Lato
可能没有神奇地变成
Arial
,我更希望body参数的值只是
Arial是一个打字错误。我才意识到即使是身体=“
不是解决方案。我将此节点转换为exe文件并从sql server执行。但无法理解为什么它总是带引号。这通常取决于shell如何解析字符串。此exe在windows环境中从ms sqlFor windows命令行执行,您可能需要使用
^
进行转义,或者双引号,请参阅“问题是,当我在args中运行此命令时,我有:”-是的,但不是真的,对吗
Lato
可能没有神奇地变成
Arial
,我更希望body参数的值只是
Arial是一个打字错误。我才意识到即使是身体=“
不是解决方案。我将此节点转换为exe文件并从sql server执行。但无法理解为什么它总是带引号。这通常取决于shell如何解析字符串。此exe在windows环境中从ms sqlFor windows命令行执行,您可能需要使用
^
进行转义,或者将引号加倍,请参阅
process.argv.slice(2).forEach(param => {
    let equalPos = param.indexOf("=");

    if (equalPos > 0) {
        let name = param.substr(0, equalPos).replace(/^-+/, "");
        let value = param.substr(equalPos + 1);
        console.log(`Arg: ${name} = ${value}`);
    }
});
Arg: param1 = test
Arg: body = <div style="font-family: Lato;">