javascript - 如何访问 CLI 参数的多个值

标签 javascript node.js command-line-arguments

我有一个 Node JS 脚本,它通过执行 ./test.js -n name1 -r us-east 从命令行读取参数。这里有两个参数 -n-r 分别传递了适当的值。现在我必须引入另一个参数 -i ,它将接收至少一个值和至多多个值。意味着脚本执行为:

./test.js -n name1 -i 100 101 103 -r us-east 
  1. 如何找到每个参数的参数值数量,例如在上面的示例中参数 -i3 值。

  2. 如何将这些值存储到数组中。

    var data = new Object();
    
    function usage()
    {
      return "test.js [-n|--name] [-i|--ids <id1 id2...>] [-r|--region] ";
    }
    
    function process_args()
    {
      var args = process.argv.slice(2);
      var i;
      for (i = 0; i > args.length; i++)
      {
            switch(args[i])
            {
            case "-n":
            case "--name":
                    i++;
                    if (i >= args.length)
                            error_exit_usage("Missing name argument");
                    data.name =args[i];
                    break;
            case "-i":
            case "--ids":
                    i++;
                    if (i >= args.length)
                            error_exit_usage("Missing ids argument");
                    /* TODO */
                    break;
            case "-r":
            case "--region":
                    i++;
                    if (i >= args.length)
                            error_exit_usage("Missing region argument");
                    data.region = args[i];
                    break;
             }
       }
    }
    

Node JS 新手。

最佳答案

我猜你可以只看下一个参数,只要它们是 ID:

case "-i":
case "--ids":
  data.ids = [];
  while (/^\d+$/.test(args[i])) {
    data.ids.push(Number(args[i]));
    i++;
  }
  if (data.ids.length === 0) {
    error_exit_usage("Missing ids argument");
  }
  break;

关于javascript - 如何访问 CLI 参数的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33252526/

相关文章:

javascript - 如何对包含字符串和整数的数组中的元素进行排序?

javascript - jquery - 获取2个数组的相似值的索引

python - 如何从命令行将十六进制值传递给 python 脚本

python - 将列表作为命令行参数传递给 Python 脚本

javascript - 我可以阻止用户将 Javascript 粘贴到设计模式 IFrame 中吗?

javascript - Highstock 时间序列未在分散工具提示上格式化

node.js - 有人可以读取使用 socket.io 发送的对象,即使它没有在前端为用户打印出来

mysql - SequelizeEagerLoadingError : product is not associated to collection

node.js - 在 Windows 10 上使用 npm install -g ionic cordova 安装 ionic 时出错

Python argparse : default argument stored as string, 未列出