Flutter - 在 CMD 中写入结果

问题描述 投票:0回答:1

我希望使用 Flutter 创建一个 Windows 可执行文件,以便在执行时能够接受命令参数并在 CMD 中打印结果:

commandtest.exe --type=csv

我写了这段代码:

import 'dart:io';

import 'package:args/args.dart';

void main(List<String> args) {
  var parser = ArgParser()..addOption("type", abbr: 't', defaultsTo: 'default');

  try {
    final ArgResults argResults = parser.parse(args);

    final String type = argResults['type'] as String;

    stdout.writeln('Type: $type'); // print() doesn't work either
    exit(0);
  } on Exception catch (e) {
    stderr.writeln("error on parsing args : $e");
    exit(1);
  }
}

这是我在 CMD 中的预期行为:

path/to/executable> mycommand.exe --type=csv
Type: csv

path/to/executable>

但目前,没有任何效果,当我运行命令时,我的 CMD 为空:

path/to/executable> mycommand.exe --type=csv

path/to/executable>

但是,我知道它是有效的,因为当我尝试这样的命令时:

mycommand.exe --type=csv > output.txt

output.txt 文件已创建,我的结果已正确推入其中。

我不明白问题出在哪里。请帮忙?

flutter
1个回答
0
投票

当您从 cmd 运行 Windows GUI 应用程序时,会发生您所显示的行为:这些不会将任何内容打印到 cmd 输出。他们仍然有一个标准输出,您可以按照您显示的方式重定向 - 但他们不会将其打印到控制台输出。

您可能使用

flutter create commandtest
来创建您的应用程序。这样,您就可以创建一个 cmake 项目,将应用程序构建为 Windows GUI 应用程序。

相反,使用

dart create commandtest
创建一个纯 Dart 应用程序。将您的代码复制到
bin\commandtest.dart
。使用
dart compile exe bin\commandtest.dart
创建 exe。

© www.soinside.com 2019 - 2024. All rights reserved.