【Dart】 Flutterだけじゃもったいない!バッチもDartで作ろう!

  • 2022年12月21日
  • 2022年12月20日
  • Dart

Dart Advent Calendar 2022」に参加させて頂きます!21日目です。

対象者

  • Flutterをやっているが、コマンドラインを作ったことのない人

はじめに

さて、Flutterをやってますか?Flutterをやっているということは、Dartも分かっているはずです。せっかくですので、日々の雑務を行うバッチファイルもDartで作っちゃいましょう。
私はFlutterで使用するデータをDartのバッチで作成してます。

実施するソース

コマンドラインで実施するバッチファイルです。引数1つ目にファイル名を指定して、行数とファイルの内容を表示するだけのプログラムです。
mainに引数をとる以外Flutterとほぼ同じです。Flutterを勉強していれば、アプリ開発だけでなくて、バッチも作成できます。

import 'dart:io';

void main(List<String> arg) async {
  final File file = File(arg[0]);
  final List<String> lines = await file.readAsLines();
  for (int i = 0; i < lines.length; i++) {
    print('$i: ${lines[i]}');
  }
}

バッチを実行する

 dart .\batch.dart .\pubspec.yaml

ファイルはFlutterのプロジェクトのルートに置いていると仮定し、pubspec.yamlの内容を出力します。

実行結果:

0: name: flutter_salon
1: description: A new Flutter project.
2:
3: # The following line prevents the package from being accidentally published to
4: # pub.dev using `flutter pub publish`. This is preferred for private packages.
5: publish_to: 'none' # Remove this line if you wish to publish to pub.dev
(以下、省略)

またAndroidStudioであれば、「Edit Configuration」で引数を設定して、デバッグもできました。

バッチの実行ファイルを作成する

Windowだと簡単に実行ファイルが作成できました。

 dart compile exe  batch.dart

まとめ

Dartを使うと簡単にバッチファイルが作れることを見てきました。

制限事項

FlutterのWidget関連のライブラリとかパッケージとかは使えません。