docs: @Override
      protected void doHandle(CommandContext ctx) throws CommandLineException {
          if (ForControlFlow.get(ctx) != null) {
              throw new CommandFormatException("for is not allowed while in for block");
          }
          final BatchManager batchManager = ctx.getBatchManager();
          if (batchManager.isBatchActive()) {
              throw new CommandFormatException("for is not allowed while in batch mode.");
          }
          String argsStr = ctx.getArgumentsString();
          if (argsStr == null) {
              throw new CommandFormatException("The command is missing arguments.");
          }
          final ParsedCommandLine args = ctx.getParsedCommandLine();
          final String varName = this.varName.getOriginalValue(args, true);
          int i = argsStr.indexOf(varName);
          if (i < 0) {
              throw new CommandFormatException("Failed to locate '" + varName + "' in '" + argsStr + "'");
          }
          i = argsStr.indexOf("in", i + varName.length());
          if (i < 0) {
              throw new CommandFormatException("Failed to locate 'in' in '" + argsStr + "'");
          }
          final String requestStr = argsStr.substring(i + 2);
          ctx.registerRedirection(new ForControlFlow(ctx, varName, requestStr));
      }