[解決済み] C#でコマンドライン引数を解析する最良の方法とは?[クローズド]
2022-03-14 11:08:36
質問
パラメータを受け取るコンソールアプリケーションを構築する場合、渡された引数を
Main(string[] args)
.
これまでは、この配列を単純にインデックス化/ループ化して、いくつかの正規表現で値を取り出していました。しかし、コマンドがより複雑になると、パースがかなり醜くなることがあります。
だから、興味があるんだ。
- 使用しているライブラリ
- 使用しているパターン
コマンドは常に以下のような共通規格に準拠していると仮定します。 回答はこちら .
解決方法は?
を使うことを強くお勧めします。 NDesk.オプション ( ドキュメント ) および/または Mono.オプション (同じAPI、異なる名前空間)。 また ドキュメントからの例 :
bool show_help = false;
List<string> names = new List<string> ();
int repeat = 1;
var p = new OptionSet () {
{ "n|name=", "the {NAME} of someone to greet.",
v => names.Add (v) },
{ "r|repeat=",
"the number of {TIMES} to repeat the greeting.\n" +
"this must be an integer.",
(int v) => repeat = v },
{ "v", "increase debug message verbosity",
v => { if (v != null) ++verbosity; } },
{ "h|help", "show this message and exit",
v => show_help = v != null },
};
List<string> extra;
try {
extra = p.Parse (args);
}
catch (OptionException e) {
Console.Write ("greet: ");
Console.WriteLine (e.Message);
Console.WriteLine ("Try `greet --help' for more information.");
return;
}
関連
-
[解決済み】"The ConnectionString property has not been initialized "を修正する方法
-
[解決済み】ユーザー設定値を別のユーザー設定値で設定する
-
[解決済み] Node.jsのプログラムにコマンドライン引数を渡すにはどうしたらいいですか?
-
[解決済み] C#のオートプロパティに初期値を与える最良の方法は何ですか?
-
[解決済み] bashシェルスクリプトの全引数を伝搬させる
-
[解決済み] C#で文字を繰り返し表示する最適な方法
-
[解決済み] コマンドライン引数の読み方・処理方法は?
-
[解決済み] Javaでコマンドライン引数をパースするには?
-
[解決済み] PowerShellでコマンドライン引数を処理する方法
-
[解決済み】rakeタスクにコマンドライン引数を渡す方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] [Solved] 1つ以上のエンティティで検証に失敗しました。詳細は'EntityValidationErrors'プロパティを参照してください [重複]。
-
[解決済み】コンパイルエラー「未割り当てのローカル変数を使用しています」が発生したのはなぜですか?
-
[解決済み】統合マネージドパイプラインモードで適用されないASP.NETの設定が検出された
-
[解決済み】Sequence contains no matching element(シーケンスにマッチする要素がない
-
[解決済み] 'IEnumerable<SelectListItem>' 型の ViewData アイテムで、キーが国であるものは存在しない。
-
[解決済み] [Solved] 不正な文字列値: '\xEFxBFxBD' for column
-
[解決済み】"指定されたパスのフォーマットはサポートされていません。"
-
[解決済み】「...は'型'であり、与えられたコンテキストでは有効ではありません」を解決するにはどうすればよいですか?(C#)
-
[解決済み】エラー「必要なフォーマルパラメータに対応する引数が与えられていない」を解決する?
-
[解決済み] [Solved] .NETでスレッドの終了を待つには?