Dart 控制台程序开发 dcli库的使用

库地址:https://pub.dev/packages/dcli

使用文档地址:https://dcli.onepub.dev/

介绍:

DCli 是 Dart 的控制台 SDK。 使用 DCli 控制台 SDK 使用 Dart 编程语言构建跨平台、命令行 (CLI) 应用程序和脚本。 DCli(发音为 d-kleye)控制台 SDK 包括 co

安装:

1.如果您只想使用 DCli 库,那么您可以像添加任何其他包一样将 DCli 添加到您的 pubspec.yaml 中。

dependencies:
  dcli: 0.37.0

2.如果您想使用DCli 工具,包括 Shebang (#!) 支持,您需要全局激活 DCli。

dart pub global activate dcli
dcli install

使用例子:

void main() {
  print("现在让我们做点有用的事.");

  var username = ask('username:');
  print('username: $username');

  var password = ask('password:', hidden: true);
  print('password: $password');

  // create a directory
  if (!exists('tmp')) {
    createDir('tmp');
  }

  // 截断任何现有内容
  // 文件 'tmptext.txt' 并写入
  // “Hello world”到文件。
  'tmp/text.txt'.write('Hello world');

  // 将“My second line”附加到文件“tmptext.txt”。
  'tmp/text.txt'.append('My second line');

  //另一个追加到同一个文件。
  'tmp/text.txt'.append('My third line');

  // 现在将文件 tmptext.txt 复制到 second.txt
  copy('tmp/text.txt', 'tmp/second.txt', overwrite: true);

  //让我们将刚刚创建的文件转储到控制台
  read('tmp/second.txt').forEach((line) => print(line));

  // 让我们通过运行来证明这两个文件都存在
  // 递归查找。
  find('*.txt').forEach((file) => print('Found $file'));

  // 现在让我们使用 OS tail 命令尾随文件。
  // 再一次飞镖扩展我们对待一个字符串
  //作为操作系统命令并运行该命令
  //一个子进程。
  // 写入stdout和stderr输出
  //直接到控制台。
  'tail tmp/text.txt'.run;

  // 让我们做一个字数统计捕获标准输出,
  // stderr 将被吞噬。
  'wc tmp/second.txt'.forEach((line) => print('Captured $line'));

  if (confirm("Should I delete 'tmp'? (y/n):")) {
    // 现在让我们清理一下
    delete('tmp/text.txt');
    delete('tmp/second.txt');
    deleteDir('tmp');
  }
}

ask函数的使用

  var res = ask(
    '请输入内容:', // Chinese
    // toLower: true,
    // 如果toLower为真,则返回的结果将转换为小写。如果您需要比较输入的值,这会很有用。
    // hidden: false,
    // 如果hidden为真,则不会在屏幕上显示输入的字符。
    // required: false,
    // 如果required为真,则用户必须输入一个值。如果用户按下回车键,则会提示用户输入一个值。
    // defaultValue: '2909552840',
    // 如果用户按下回车键,则将使用默认值。
    // validator: Ask.dontCare, // 电子邮件验证器
    // validator: Ask.email, // 电子邮件验证器
  );
  echo(red(res));
图片[1]-Dart 控制台程序开发 dcli库的使用-IT网络技术分享

Menu菜单的使用

  var res = Menu(['one', 'two', 'three'], title: '选择器:').choose();
  echo(red(res.result), newline: true);
  echo(green(res.index.toString()));
//定义一个menu类方便管理
class Menu {
  final List<String> choices;
  final String title;

  Menu(this.choices, {this.title = ''});

  Answer choose() {
    print("");
    final result = menu(prompt: title, options: choices);
    final index = choices.indexOf(result);

    return Answer(result: result, index: index);
  }
}

class Answer {
  final String result;
  final int index;

  const Answer({required this.result, required this.index});
}
图片[2]-Dart 控制台程序开发 dcli库的使用-IT网络技术分享

confirm函数的使用

  if (confirm('你是不是要退出?')) {
    echo(red('退出'), newline: true);
  } else {
    echo(green('继续'), newline: true);
  }
图片[3]-Dart 控制台程序开发 dcli库的使用-IT网络技术分享
THE END
喜欢就支持一下吧
点赞6 分享