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;">