如何让process.argv只打印参数(而不是路径或node命令)?

4

标题已经说明了一切!我正在制作一个非常大的项目(涉及AppleScript和iMessage),脚本已经经过测试,它会打开终端并运行:node ~/Desktop/chatbot [argument]。目前,它只是把这个传递给我:[ '/usr/local/bin/node', '~/Desktop/chatbot', '[argument]' ]。如何让它仅传递给我[argument]

2个回答

3

我怎样只获取传递给我的[argument]参数?

不行。它是按照这种设计的。你可以安全地忽略该数组的[0][1]元素,直接从[2]开始查找。如果你真的想创建一个删除了这些元素的数组,可以使用.slice(2)方法:

let args = process.argv.slice(2);
console.log(args);

如果您只想要第一个命令行参数,可以直接获取:

let arg = process.argv[2];
console.log(arg);

1

前两个参数始终是node和您要运行的文件/文件路径

如果您只想获取传递的参数,而不是node文件路径,只需忽略前两个值,并像这样检索它们:

for(var i = 2; i < process.argv.length; i++) {
  console.log(process.argv[i]);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接