「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>自作CUI(CLI)の話]] --[[CLI開発(Sharprompt)]] --CLI開発(System.CommandLine) * 目次 [#v12dcaff] #contents * 概要 [#u60e333d] 自作CUI(CLI)を開発する際に便利なのでは?と。 https://github.com/dotnet/command-line-api/blob/main/docs/History.md * 詳細 [#o643513e] **機能 [#tc10c441] ***System.CommandLine [#ee6b43ac] -コマンドライン・パーサー --コマンド ---ルート・コマンド ---サブ・コマンド --オプション ---スタイル~ ・POSIX(-XXX)~ ・Windows(/XXX) ---エイリアス~ ・POSIX(-v と --verbose)~ ・Windows(エイリアス無し) --引数 ---デリミタ~ ・スペース~ ・「:」や「=」 ---arity~ 引数の最小値と最大値を設定できる。 ---バンドル~ ・1文字のオプションはバンドル可能。~ ・バンドルした場合、バンドル内の最後のオプションに引数が適用される。 --バインディング ---ハンドラ設定 ---引数のバリデーション ---引数のバインディング ---モデル・バインディング~ https://github.com/dotnet/command-line-api/blob/main/docs/model-binding.md --Ctrl-C~ https://github.com/dotnet/command-line-api/blob/main/docs/Process-termination-handling.md --レスポンス・ファイル~ レスポンス・ファイルを使用してコマンドを指定できる。 -その他 --ヘルプ ---ヘルプ > myapp -h > myapp /h > myapp --help > myapp -? > myapp /? ---解析ディレクティブ~ 構文解析結果を表示する。 > myapp [parse] > myapp [parse] ...(コマンド)... ---バージョン > myapp --version 1.0.0 --Debugディレクティブ > myapp [debug] ...(コマンド)... ココの後、デバッガをアタッチしてデバッグ --パイプライン ---ハンドラへのルーティングの前の~ パイプラインに呼び出しを追加できる。 ---ディレクティブは、この機能を使用している。 -参考 --https://github.com/dotnet/command-line-api/blob/main/docs/Syntax-Concepts-and-Parser.md --https://github.com/dotnet/command-line-api/blob/main/docs/Features-overview.md --https://github.com/dotnet/command-line-api/blob/main/docs/How-To.md ***System.CommandLine.DragonFruit [#bcbeef4d] 強力に型付けされたMainメソッドを使って、~ 慣習的にコマンドラインアプリを構築する。 -参考 --https://github.com/dotnet/command-line-api/blob/main/docs/DragonFruit-overview.md ***System.CommandLine.Rendering [#eb84c8f7] -構造化された端末出力のレンダリング -ANSIのサポート -参考 --https://github.com/dotnet/command-line-api/blob/main/docs/Features-overview.md#adaptive-rendering ***System.CommandLine.Hosting [#v2a8d0fb] Microsoft.Extensions.HostingでSystem.CommandLineを使用するためのサポート ***dotnet-suggest [#zd271cba] System.CommandLineを使って作られたアプリに~ シェルの補完機能を提供するコマンドラインツール。 -参考 --https://github.com/dotnet/command-line-api/blob/main/docs/dotnet-suggest.md **サンプル実装 [#gdc2ba57] ***System.CommandLine [#n573ea94] -https://github.com/dotnet/command-line-api/blob/main/docs/Your-first-app-with-System-CommandLine.md -OpenTouryoProject/OpenTouryo --https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/CS/Samples/CLI_sample/Simple_CLI/Simple_CLI/Program.cs --https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/CS/Samples4NetCore/Legacy/CLI_sample/Simple_CLI/Simple_CLI/Program.cs ***System.CommandLine.DragonFruit [#c7713f0e] https://github.com/dotnet/command-line-api/blob/main/docs/Your-first-app-with-System-CommandLine-DragonFruit.md ***System.CommandLine.Rendering [#x27d5323] ***System.CommandLine.Hosting [#wd6021ae] ... ***dotnet-suggest [#x63fef82] ... * 参考 [#d72eb79d] -dotnet/command-line-api: Command line parsing, invocation, and rendering of terminal output.~ https://github.com/dotnet/command-line-api -DragonFruit and System.CommandLine is a new way to think about .NET Console apps - Scott Hanselman's Blog~ https://www.hanselman.com/blog/dragonfruit-and-systemcommandline-is-a-new-way-to-think-about-net-console-apps -Getting Started with System.CommandLine – .NET Development Addict~ https://dotnetdevaddict.co.za/2020/09/25/getting-started-with-system-commandline/ -Parsing the command line for your application with System.CommandLine – Bruno Sonnino~ https://blogs.msmvps.com/bsonnino/2020/04/12/parsing-the-command-line-for-your-application-with-system-commandline/ -System.CommandLine 入門 | Yucchiy's Note~ https://blog.yucchiy.com/2021/03/intro-system-commandline/ -C#でコマンドライン引数を扱う方法 - 備忘録~ https://kagasu.hatenablog.com/entry/2018/12/17/165431 -.NET での CLI 処理ライブラリについて - 鷲ノ巣~ https://tech.blog.aerie.jp/entry/2018/06/22/124630 -.NET - System.CommandLine を使用してコマンド ラインを解析する | Microsoft Docs~ https://docs.microsoft.com/ja-jp/archive/msdn-magazine/2019/march/net-parse-the-command-line-with-system-commandline **[[OSSコンソーシアム情報>自作CUI(CLI)の話#b364b47e]] [#ddc16b43] ---- Tags: [[:シェル]], [[:インフラストラクチャ]], [[:Windows]], [[:.NET開発]] Tags: [[:シェル]], [[:インフラストラクチャ]], [[:.NET開発]]